summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java')
-rw-r--r--java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java20
1 files changed, 12 insertions, 8 deletions
diff --git a/java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java b/java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java
index b7d31c0e9..3b46ed0d0 100644
--- a/java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java
+++ b/java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java
@@ -18,22 +18,25 @@ package com.android.dialer.rootcomponentgenerator.processor;
import static javax.tools.Diagnostic.Kind.ERROR;
+import com.android.dialer.rootcomponentgenerator.annotation.IncludeInDialerRoot;
import com.android.dialer.rootcomponentgenerator.annotation.InstallIn;
import com.android.dialer.rootcomponentgenerator.annotation.RootComponentGeneratorMetadata;
import com.google.auto.common.BasicAnnotationProcessor.ProcessingStep;
+import com.google.auto.common.MoreElements;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.SetMultimap;
import com.squareup.javapoet.AnnotationSpec;
import com.squareup.javapoet.TypeSpec;
-import dagger.Subcomponent;
import java.lang.annotation.Annotation;
import java.util.Collections;
import java.util.Set;
import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.element.Element;
+import javax.lang.model.element.TypeElement;
/**
- * Genereates metadata for every type annotated by {@link InstallIn} and {@link Subcomponent}.
+ * Genereates metadata for every type annotated by {@link InstallIn} and {@link
+ * IncludeInDialerRoot}.
*
* <p>The metadata has the information where the annotated types are and it is used by annotation
* processor when the processor tries to generate root component.
@@ -48,15 +51,15 @@ final class MetadataGeneratingStep implements ProcessingStep {
@Override
public Set<? extends Class<? extends Annotation>> annotations() {
- return ImmutableSet.of(Subcomponent.class, InstallIn.class);
+ return ImmutableSet.of(IncludeInDialerRoot.class, InstallIn.class);
}
@Override
public Set<? extends Element> process(
SetMultimap<Class<? extends Annotation>, Element> elementsByAnnotation) {
- for (Element element : elementsByAnnotation.get(Subcomponent.class)) {
- generateMetadataFor(Subcomponent.class, element);
+ for (Element element : elementsByAnnotation.get(IncludeInDialerRoot.class)) {
+ generateMetadataFor(IncludeInDialerRoot.class, MoreElements.asType(element));
}
for (Element element : elementsByAnnotation.get(InstallIn.class)) {
if (element.getAnnotation(InstallIn.class).variants().length == 0) {
@@ -66,16 +69,17 @@ final class MetadataGeneratingStep implements ProcessingStep {
ERROR, String.format("@InstallIn %s must have at least one variant", element));
continue;
}
- generateMetadataFor(InstallIn.class, element);
+ generateMetadataFor(InstallIn.class, MoreElements.asType(element));
}
return Collections.emptySet();
}
private void generateMetadataFor(
- Class<? extends Annotation> annotation, Element annotatedElement) {
+ Class<? extends Annotation> annotation, TypeElement annotatedElement) {
TypeSpec.Builder metadataClassBuilder =
- TypeSpec.classBuilder(annotatedElement.getSimpleName() + "Metadata");
+ TypeSpec.classBuilder(
+ annotatedElement.getQualifiedName().toString().replace('.', '_') + "Metadata");
metadataClassBuilder.addAnnotation(
AnnotationSpec.builder(RootComponentGeneratorMetadata.class)
.addMember("tag", "$S", annotation.getSimpleName())