Example usage for javax.lang.model.type TypeMirror accept

List of usage examples for javax.lang.model.type TypeMirror accept

Introduction

In this page you can find the example usage for javax.lang.model.type TypeMirror accept.

Prototype

<R, P> R accept(TypeVisitor<R, P> v, P p);

Source Link

Document

Applies a visitor to this type.

Usage

From source file:org.androidtransfuse.analysis.FragmentAnalysis.java

@Override
public ComponentDescriptor analyze(ASTType astType) {
    Fragment fragmentAnnotation = astType.getAnnotation(Fragment.class);
    PackageClass fragmentClassName;//w  w  w .j a va 2  s.c  om
    ComponentDescriptor fragmentDescriptor = null;

    if (!astType.extendsFrom(astClassFactory.getType(android.support.v4.app.Fragment.class))) {
        //generated Android fragment
        fragmentClassName = buildPackageClass(astType, fragmentAnnotation.name());

        Layout layoutAnnotation = astType.getAnnotation(Layout.class);

        TypeMirror type = getTypeMirror(new FragmentTypeMirrorRunnable(fragmentAnnotation));

        ASTType fragmentType = type == null ? astClassFactory.getType(android.support.v4.app.Fragment.class)
                : type.accept(astTypeBuilderVisitor, null);

        Integer layout = layoutAnnotation == null ? null : layoutAnnotation.value();

        AnalysisContext context = analysisContextFactory.buildAnalysisContext(buildVariableBuilderMap(type));

        fragmentDescriptor = new ComponentDescriptor(fragmentType.getName(), fragmentClassName);

        //application generation profile
        setupFragmentProfile(fragmentDescriptor, astType, fragmentType, context, layout);
    }

    return fragmentDescriptor;

}

From source file:org.androidtransfuse.analysis.ActivityAnalysis.java

private InjectionNode buildLayoutHandlerInjectionNode(final LayoutHandler layoutHandlerAnnotation,
        AnalysisContext context) {/*from  w ww. j av  a 2s .  c  o  m*/
    if (layoutHandlerAnnotation != null) {
        TypeMirror layoutHandlerType = getTypeMirror(
                new LayoutHandlerTypeMirrorRunnable(layoutHandlerAnnotation));

        if (layoutHandlerType != null) {
            ASTType layoutHandlerASTType = layoutHandlerType.accept(astTypeBuilderVisitorProvider.get(), null);
            return injectionPointFactory.buildInjectionNode(layoutHandlerASTType, context);
        }
    }
    return null;
}

From source file:org.androidtransfuse.analysis.ServiceAnalysis.java

private InjectionNodeBuilderRepository buildVariableBuilderMap(TypeMirror type) {

    InjectionNodeBuilderRepository injectionNodeBuilderRepository = injectionNodeRepositoryProvider.get();

    injectionNodeBuilderRepository.putType(Context.class, injectionBindingBuilder.buildThis(Context.class));
    injectionNodeBuilderRepository.putType(Application.class, injectionBindingBuilder.dependency(Context.class)
            .invoke(Application.class, "getApplication").build());
    injectionNodeBuilderRepository.putType(android.app.Service.class,
            injectionBindingBuilder.buildThis(android.app.Service.class));
    injectionNodeBuilderRepository.putType(ContextScopeHolder.class,
            injectionBindingBuilder.buildThis(ContextScopeHolder.class));

    if (type != null && !type.toString().equals(android.app.Service.class.getName())) {
        ASTType serviceASTType = type.accept(astTypeBuilderVisitor, null);
        injectionNodeBuilderRepository.putType(serviceASTType,
                injectionBindingBuilder.buildThis(serviceASTType));
    }/* w  w w.ja  va 2s.c  om*/

    injectionNodeBuilderRepository
            .addRepository(injectionNodeBuilderRepositoryFactory.buildApplicationInjections());
    injectionNodeBuilderRepository
            .addRepository(injectionNodeBuilderRepositoryFactory.buildModuleConfiguration());

    return injectionNodeBuilderRepository;

}

From source file:org.androidtransfuse.analysis.ActivityAnalysis.java

private InjectionNodeBuilderRepository buildVariableBuilderMap(TypeMirror activityType) {

    InjectionNodeBuilderRepository injectionNodeBuilderRepository = injectionNodeBuilderRepositoryProvider
            .get();/*  ww w .  j  a  va 2s . c o  m*/

    injectionNodeBuilderRepository.putType(Context.class, injectionBindingBuilder.buildThis(Context.class));
    injectionNodeBuilderRepository.putType(Application.class, injectionBindingBuilder.dependency(Context.class)
            .invoke(Application.class, "getApplication").build());
    injectionNodeBuilderRepository.putType(android.app.Activity.class,
            injectionBindingBuilder.buildThis(android.app.Activity.class));
    injectionNodeBuilderRepository.putType(ContextScopeHolder.class,
            injectionBindingBuilder.buildThis(ContextScopeHolder.class));

    if (activityType != null && !activityType.toString().equals(android.app.Activity.class.getName())) {
        ASTType activityASTType = activityType.accept(astTypeBuilderVisitor, null);
        injectionNodeBuilderRepository.putType(activityASTType,
                injectionBindingBuilder.buildThis(activityASTType));
    }

    injectionNodeBuilderRepository.putAnnotation(Extra.class, extraInjectionNodeBuilder);
    injectionNodeBuilderRepository.putAnnotation(Resource.class, resourceInjectionNodeBuilder);
    injectionNodeBuilderRepository.putAnnotation(SystemService.class, systemServiceBindingInjectionNodeBuilder);
    injectionNodeBuilderRepository.putAnnotation(Preference.class, preferenceInjectionNodeBuilder);
    injectionNodeBuilderRepository.putAnnotation(View.class, viewVariableBuilder);

    injectionNodeBuilderRepository
            .addRepository(injectionNodeBuilderRepositoryFactory.buildApplicationInjections());

    injectionNodeBuilderRepository
            .addRepository(injectionNodeBuilderRepositoryFactory.buildModuleConfiguration());

    return injectionNodeBuilderRepository;

}

From source file:org.androidtransfuse.analysis.FragmentAnalysis.java

private InjectionNodeBuilderRepository buildVariableBuilderMap(TypeMirror type) {

    InjectionNodeBuilderRepository injectionNodeBuilderRepository = injectionNodeBuilderRepositoryProvider
            .get();/*from  ww  w  . j a  v a  2s.co  m*/

    injectionNodeBuilderRepository.putType(android.support.v4.app.Fragment.class,
            injectionBindingBuilder.buildThis(android.support.v4.app.Fragment.class));
    injectionNodeBuilderRepository.putType(Activity.class, injectionBindingBuilder
            .dependency(android.support.v4.app.Fragment.class).invoke(Activity.class, "getActivity").build());
    injectionNodeBuilderRepository.putType(Context.class, injectionBindingBuilder
            .dependency(android.support.v4.app.Fragment.class).invoke(Context.class, "getActivity").build());
    injectionNodeBuilderRepository.putType(FragmentManager.class,
            injectionBindingBuilder.dependency(android.support.v4.app.Fragment.class)
                    .invoke(FragmentManager.class, "getFragmentManager").build());
    injectionNodeBuilderRepository.putType(Application.class, injectionBindingBuilder.dependency(Activity.class)
            .invoke(Application.class, "getApplication").build());
    injectionNodeBuilderRepository.putType(ContextScopeHolder.class, injectionBindingBuilder
            .dependency(android.support.v4.app.Fragment.class).invoke(Activity.class, "getActivity").build());

    if (type != null && !type.toString().equals(android.support.v4.app.Fragment.class.getName())) {
        ASTType fragmentASTType = type.accept(astTypeBuilderVisitor, null);
        injectionNodeBuilderRepository.putType(fragmentASTType,
                injectionBindingBuilder.buildThis(fragmentASTType));
    }

    injectionNodeBuilderRepository.putAnnotation(Extra.class, extraInjectionNodeBuilder);
    injectionNodeBuilderRepository.putAnnotation(Resource.class, resourceInjectionNodeBuilder);
    injectionNodeBuilderRepository.putAnnotation(SystemService.class, systemServiceBindingInjectionNodeBuilder);
    injectionNodeBuilderRepository.putAnnotation(Preference.class, preferenceInjectionNodeBuilder);
    injectionNodeBuilderRepository.putAnnotation(org.androidtransfuse.annotations.View.class,
            fragmentViewInjectionNodeBuilder);

    injectionNodeBuilderRepository
            .addRepository(injectionNodeBuilderRepositoryFactory.buildApplicationInjections());
    injectionNodeBuilderRepository
            .addRepository(injectionNodeBuilderRepositoryFactory.buildModuleConfiguration());

    return injectionNodeBuilderRepository;
}