// Path: app/src/main/java/leonardo2204/com/br/flowtests/di/component/ActivityComponent.java
// @DaggerScope(ActivityComponent.class)
// @Component(dependencies = AppComponent.class, modules = ActivityModule.class)
// public interface ActivityComponent extends AppComponent {
//     void inject(RootActivity rootActivity);
// 
//     ActionBarOwner actionBarOwner();
// }
// 
// Path: app/src/main/java/leonardo2204/com/br/flowtests/di/module/FirstScreenModule.java
// @Module
// public class FirstScreenModule {
// 
//     @Provides
//     @DaggerScope(FirstScreenComponent.class)
//     public GetContacts providesGetContacts(ContactsRepository contactsRepository, ThreadExecutor threadExecutor, PostExecutionThread postExecutionThread) {
//         return new GetContacts(contactsRepository, threadExecutor, postExecutionThread);
//     }
// 
//     @Provides
//     @DaggerScope(FirstScreenComponent.class)
//     public FirstScreenPresenter providesFirstScreenPresenter(GetContacts getContacts, ActionBarOwner actionBarOwner) {
//         return new FirstScreenPresenter(getContacts, actionBarOwner);
//     }
// }
// 
// Path: app/src/main/java/leonardo2204/com/br/flowtests/flow/serviceFactory/InjectionComponent.java
// public interface InjectionComponent<T> {
//     Object createComponent(T parent);
// }


import flow.ClassKey;
import leonardo2204.com.br.flowtests.Layout;
import leonardo2204.com.br.flowtests.R;
import leonardo2204.com.br.flowtests.di.component.ActivityComponent;
import leonardo2204.com.br.flowtests.di.component.DaggerFirstScreenComponent;
import leonardo2204.com.br.flowtests.di.module.FirstScreenModule;
import leonardo2204.com.br.flowtests.flow.serviceFactory.InjectionComponent;
package leonardo2204.com.br.flowtests.screen;


/**
 * Created by Leonardo on 04/03/2016.
 */
@Layout(R.layout.screen_first)
@org.parceler.Parcel
public class FirstScreen extends ClassKey implements InjectionComponent<ActivityComponent> {

    public FirstScreen() {
    }

    @Override
    public Object createComponent(ActivityComponent parent) {
        return DaggerFirstScreenComponent
                .builder()
// Path: app/src/main/java/leonardo2204/com/br/flowtests/di/component/ActivityComponent.java
// @DaggerScope(ActivityComponent.class)
// @Component(dependencies = AppComponent.class, modules = ActivityModule.class)
// public interface ActivityComponent extends AppComponent {
//     void inject(RootActivity rootActivity);
// 
//     ActionBarOwner actionBarOwner();
// }
// 
// Path: app/src/main/java/leonardo2204/com/br/flowtests/di/module/FirstScreenModule.java
// @Module
// public class FirstScreenModule {
// 
//     @Provides
//     @DaggerScope(FirstScreenComponent.class)
//     public GetContacts providesGetContacts(ContactsRepository contactsRepository, ThreadExecutor threadExecutor, PostExecutionThread postExecutionThread) {
//         return new GetContacts(contactsRepository, threadExecutor, postExecutionThread);
//     }
// 
//     @Provides
//     @DaggerScope(FirstScreenComponent.class)
//     public FirstScreenPresenter providesFirstScreenPresenter(GetContacts getContacts, ActionBarOwner actionBarOwner) {
//         return new FirstScreenPresenter(getContacts, actionBarOwner);
//     }
// }
// 
// Path: app/src/main/java/leonardo2204/com/br/flowtests/flow/serviceFactory/InjectionComponent.java
// public interface InjectionComponent<T> {
//     Object createComponent(T parent);
// }


// Path: app/src/main/java/leonardo2204/com/br/flowtests/screen/FirstScreen.java
import flow.ClassKey;
import leonardo2204.com.br.flowtests.Layout;
import leonardo2204.com.br.flowtests.R;
import leonardo2204.com.br.flowtests.di.component.ActivityComponent;
import leonardo2204.com.br.flowtests.di.component.DaggerFirstScreenComponent;
import leonardo2204.com.br.flowtests.di.module.FirstScreenModule;
import leonardo2204.com.br.flowtests.flow.serviceFactory.InjectionComponent;

package leonardo2204.com.br.flowtests.screen;


/**
 * Created by Leonardo on 04/03/2016.
 */
@Layout(R.layout.screen_first)
@org.parceler.Parcel
public class FirstScreen extends ClassKey implements InjectionComponent<ActivityComponent> {

    public FirstScreen() {
    }

    @Override
    public Object createComponent(ActivityComponent parent) {
        return DaggerFirstScreenComponent
                .builder()
                .activityComponent(parent)