/** * Returns {@code true} if an binding is deemed to be required. Returns false when a field is * annotated with any annotation named {@code Optional} or {@code Nullable}. */ private boolean isRequiredInjection(Element element) { return !compilerUtil.hasAnnotationWithName(element, "Nullable"); } }
@Override public synchronized void init(ProcessingEnvironment processingEnv) { super.init(processingEnv); final CompilerUtil compilerUtil = new CompilerUtil(processingEnv); loggingUtil = new LoggingUtil(processingEnv); fileUtil = new FileUtil(processingEnv); navigationModelBindingTargetUtil = new NavigationModelBindingTargetUtil(compilerUtil, processingEnv); navigationModelFieldUtil = new NavigationModelFieldUtil(loggingUtil, navigationModelBindingTargetUtil); }
private boolean isValidExtraType(TypeMirror type) { return compilerUtil.isSerializable(type) || compilerUtil.isParcelable(type) || compilerUtil.isCharSequence(type); }
@Override public synchronized void init(ProcessingEnvironment processingEnv) { super.init(processingEnv); final CompilerUtil compilerUtil = new CompilerUtil(processingEnv); final ParcelerUtil parcelerUtil = new ParcelerUtil(compilerUtil, processingEnv, usesParcelerOption); loggingUtil = new LoggingUtil(processingEnv); fileUtil = new FileUtil(processingEnv); extraBindingTargetUtil = new ExtraBindingTargetUtil(compilerUtil, processingEnv, loggingUtil); dartModelUtil = new DartModelUtil(loggingUtil, extraBindingTargetUtil, compilerUtil); bindExtraUtil = new BindExtraUtil( compilerUtil, parcelerUtil, loggingUtil, extraBindingTargetUtil, dartModelUtil); }
private Map<TypeElement, ExtraBindingTarget> findAndParseTargets() { Map<TypeElement, ExtraBindingTarget> targetClassMap = new LinkedHashMap<>(); dartModelUtil.parseDartModelAnnotatedTypes(targetClassMap); bindExtraUtil.parseBindExtraAnnotatedElements(targetClassMap); extraBindingTargetUtil.createBindingTargetTrees(targetClassMap); extraBindingTargetUtil.addClosestRequiredAncestorForTargets(targetClassMap); return targetClassMap; }
private Map<TypeElement, ExtraBindingTarget> findAndParseTargets() { Map<TypeElement, ExtraBindingTarget> targetClassMap = new LinkedHashMap<>(); dartModelUtil.parseDartModelAnnotatedTypes(targetClassMap); bindExtraUtil.parseBindExtraAnnotatedElements(targetClassMap); extraBindingTargetUtil.createBindingTargetTrees(targetClassMap); return targetClassMap; }
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { dartModelUtil.setRoundEnvironment(roundEnv); bindExtraUtil.setRoundEnvironment(roundEnv); final Map<TypeElement, ExtraBindingTarget> targetClassMap = findAndParseTargets(); generateIntentBuilders(targetClassMap); //return false here to let dart process the annotations too return false; }
private Map<TypeElement, NavigationModelBindingTarget> findAndParseTargets() { Map<TypeElement, NavigationModelBindingTarget> targetClassMap = new LinkedHashMap<>(); navigationModelFieldUtil.parseDartModelAnnotatedFields(targetClassMap); navigationModelBindingTargetUtil.createBindingTargetTrees(targetClassMap); return targetClassMap; }
public void createBindingTargetTrees( Map<TypeElement, NavigationModelBindingTarget> targetClassMap) { final Set<TypeElement> targetTypeElements = targetClassMap.keySet(); for (TypeElement typeElement : targetTypeElements) { TypeElement parentTypeElement = compilerUtil.findParent(typeElement, targetTypeElements); if (parentTypeElement != null) { final NavigationModelBindingTarget target = targetClassMap.get(typeElement); final NavigationModelBindingTarget parentTarget = targetClassMap.get(parentTypeElement); target.parentPackage = parentTarget.classPackage; target.parentClass = parentTarget.className; } } checkForParentsOutside(targetClassMap); }
private void parseDartModel( TypeElement element, Map<TypeElement, ExtraBindingTarget> targetClassMap) { // The ExtraBindingTarget was already created, @BindExtra processed first if (targetClassMap.containsKey(element)) { return; } // Verify common generated code restrictions. if (!isValidUsageOfDartModel(element)) { return; } // Assemble information on the binding point. final ExtraBindingTarget navigationModelTarget = extraBindingTargetUtil.createTargetClass(element); targetClassMap.put(element, navigationModelTarget); }
public ExtraBindingTarget createTargetClass(TypeElement typeElement) { final String classPackage = compilerUtil.getPackageName(typeElement); final String className = compilerUtil.getClassName(typeElement, classPackage); return new ExtraBindingTarget(classPackage, className); }
public void createBindingTargetTrees(Map<TypeElement, ExtraBindingTarget> targetClassMap) { final Set<TypeElement> targetTypeElements = targetClassMap.keySet(); for (TypeElement typeElement : targetTypeElements) { TypeElement parentTypeElement = compilerUtil.findParent(typeElement, targetTypeElements); if (parentTypeElement != null) { final ExtraBindingTarget target = targetClassMap.get(typeElement); final ExtraBindingTarget parentTarget = targetClassMap.get(parentTypeElement); target.parentPackage = parentTarget.classPackage; target.parentClass = parentTarget.className; parentTarget.addChild(typeElement); } } checkForParentsOutside(targetClassMap); }
public boolean isCharSequence(TypeMirror type) { return isAssignable(type, "java.lang.CharSequence"); }
public boolean isValidExtraTypeForParceler(TypeMirror type) { return isValidForParceler(type, false); }
private boolean isAnnotatedWithParcel(TypeMirror type) { return compilerUtil.hasAnnotationWithFqcn(typeUtils.asElement(type), "org.parceler.Parcel"); } }
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { navigationModelFieldUtil.setRoundEnvironment(roundEnv); Map<TypeElement, NavigationModelBindingTarget> targetClassMap = findAndParseTargets(); generateNavigationModelBinder(targetClassMap); //return false here to let henson process the annotations too return false; }
@Override public synchronized void init(ProcessingEnvironment processingEnv) { super.init(processingEnv); final CompilerUtil compilerUtil = new CompilerUtil(processingEnv); final ParcelerUtil parcelerUtil = new ParcelerUtil(compilerUtil, processingEnv, usesParceler); loggingUtil = new LoggingUtil(processingEnv); fileUtil = new FileUtil(processingEnv); extraBindingTargetUtil = new ExtraBindingTargetUtil(compilerUtil, processingEnv, loggingUtil); dartModelUtil = new DartModelUtil(loggingUtil, extraBindingTargetUtil, compilerUtil); bindExtraUtil = new BindExtraUtil( compilerUtil, parcelerUtil, loggingUtil, extraBindingTargetUtil, dartModelUtil); parseAnnotationProcessorOptions(processingEnv); }
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { dartModelUtil.setRoundEnvironment(roundEnv); bindExtraUtil.setRoundEnvironment(roundEnv); Map<TypeElement, ExtraBindingTarget> targetClassMap = findAndParseTargets(); generateExtraBinders(targetClassMap); //return false here to let henson process the annotations too return false; }
public boolean isSerializable(TypeMirror type) { return isAssignable(type, "java.io.Serializable"); }
public boolean isParcelable(TypeMirror type) { return isAssignable(type, "android.os.Parcelable"); }