builder.methodName(method.getSimpleName().toString()); TypeElement enclosingElement = MoreElements.asType(method.getEnclosingElement()); if (!isAnnotationPresent(enclosingElement, Module.class)) { reporter.reportError("@ContributesAndroidInjector methods must be in a @Module"); builder.enclosingModule(ClassName.get(enclosingElement)); builder.frameworkType((ClassName) TypeName.get(maybeFrameworkType.get().getValue())); if (MoreTypes.asDeclared(injectedType).getTypeArguments().isEmpty()) { builder.injectedType(ClassName.get(MoreTypes.asTypeElement(injectedType))); builder.mapKeyType(ClassName.get(MoreTypes.asTypeElement(maybeFrameworkType.get().getKey()))); } else { reporter.reportError( getAnnotationValue(annotation, "modules").accept(new AllTypesVisitor(), null)) { if (isAnnotationPresent(MoreTypes.asElement(module), Module.class)) { builder.modulesBuilder().add((ClassName) TypeName.get(module)); } else { reporter.reportError(String.format("%s is not a @Module", module), annotation); builder.scopesBuilder().add(AnnotationSpec.get(scope)); return reporter.hasError() ? Optional.empty() : Optional.of(builder.build());
reporter.reportError("@ContributesAndroidInjector methods must be in a @Module"); builder.enclosingModule(ClassName.get(enclosingElement)); builder.injectedType(ClassName.get(MoreTypes.asTypeElement(injectedType))); } else { reporter.reportError( getAnnotationValue(annotation, "modules").accept(new AllTypesVisitor(), null)) { if (isAnnotationPresent(MoreTypes.asElement(module), Module.class)) { builder.modulesBuilder().add((ClassName) TypeName.get(module)); } else { reporter.reportError(String.format("%s is not a @Module", module), annotation); builder.scopesBuilder().add(AnnotationSpec.get(scope)); return reporter.hasError ? Optional.empty() : Optional.of(builder.build());