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 void parseInjectExtra( Element element, Map<TypeElement, ExtraBindingTarget> targetClassMap) { // Verify common generated code restrictions. if (!isValidUsageOfBindExtra(element)) { return; } final TypeElement enclosingElement = (TypeElement) element.getEnclosingElement(); ExtraBindingTarget extraBindingTarget = targetClassMap.get(enclosingElement); if (extraBindingTarget == null) { // The ExtraBindingTarget was already created, @DartModel processed first if (!dartModelUtil.isValidUsageOfDartModel(enclosingElement)) { return; } extraBindingTarget = extraBindingTargetUtil.createTargetClass(enclosingElement); targetClassMap.put(enclosingElement, extraBindingTarget); } final String annotationValue = element.getAnnotation(BindExtra.class).value(); final String name = element.getSimpleName().toString(); final String key = StringUtil.isNullOrEmpty(annotationValue) ? name : annotationValue; final TypeMirror type = element.asType(); final boolean required = isRequiredInjection(element); final boolean parcel = parcelerUtil.isParcelerAvailable() && parcelerUtil.isValidExtraTypeForParceler(type); extraBindingTarget.addField(key, name, type, required, parcel); }