diff options
author | Zachary Heidepriem <zachh@google.com> | 2018-04-06 12:28:36 -0700 |
---|---|---|
committer | Zachary Heidepriem <zachh@google.com> | 2018-04-06 13:20:02 -0700 |
commit | 7acd97f63fdd4fad9fbbdbf7e941dda03b04e44a (patch) | |
tree | 992a1f0ad5300dd19a95572e0f540944be12fce7 /java/com/android/dialer/rootcomponentgenerator | |
parent | 2725d7980278f8277d042c5087a2a1e467bbaa7b (diff) |
Reorganized rootcomponentgenerator package and added demo.
-Moved rootcomponentgenerator/annotations to dialer/inject to reduce the number of deps engineers need to include
-Move rootcomponentgenerator/processor into rootcomponentgenerator/ since the other package is now gone
-Added inject/demo and tests
TEST=unit, tap
Test: unit, tap
PiperOrigin-RevId: 191916595
Change-Id: Ic155808c7435bdce198970caa92309edb9fadac8
Diffstat (limited to 'java/com/android/dialer/rootcomponentgenerator')
10 files changed, 14 insertions, 218 deletions
diff --git a/java/com/android/dialer/rootcomponentgenerator/processor/ComponentGeneratingStep.java b/java/com/android/dialer/rootcomponentgenerator/ComponentGeneratingStep.java index 04d42ac59..1a40611c5 100644 --- a/java/com/android/dialer/rootcomponentgenerator/processor/ComponentGeneratingStep.java +++ b/java/com/android/dialer/rootcomponentgenerator/ComponentGeneratingStep.java @@ -14,7 +14,7 @@ * limitations under the License */ -package com.android.dialer.rootcomponentgenerator.processor; +package com.android.dialer.rootcomponentgenerator; import static com.google.auto.common.AnnotationMirrors.getAnnotationValue; import static com.google.auto.common.MoreElements.getAnnotationMirror; @@ -23,7 +23,7 @@ import static javax.lang.model.element.Modifier.PUBLIC; import static javax.lang.model.element.Modifier.STATIC; import static javax.lang.model.util.ElementFilter.typesIn; -import com.android.dialer.rootcomponentgenerator.annotation.IncludeInDialerRoot; +import com.android.dialer.inject.IncludeInDialerRoot; import com.google.auto.common.BasicAnnotationProcessor.ProcessingStep; import com.google.auto.common.MoreElements; import com.google.common.base.Optional; diff --git a/java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java b/java/com/android/dialer/rootcomponentgenerator/MetadataGeneratingStep.java index 3b46ed0d0..266574d76 100644 --- a/java/com/android/dialer/rootcomponentgenerator/processor/MetadataGeneratingStep.java +++ b/java/com/android/dialer/rootcomponentgenerator/MetadataGeneratingStep.java @@ -14,13 +14,13 @@ * limitations under the License */ -package com.android.dialer.rootcomponentgenerator.processor; +package com.android.dialer.rootcomponentgenerator; 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.android.dialer.inject.IncludeInDialerRoot; +import com.android.dialer.inject.InstallIn; +import com.android.dialer.inject.RootComponentGeneratorMetadata; import com.google.auto.common.BasicAnnotationProcessor.ProcessingStep; import com.google.auto.common.MoreElements; import com.google.common.collect.ImmutableSet; diff --git a/java/com/android/dialer/rootcomponentgenerator/processor/RootComponentGeneratingStep.java b/java/com/android/dialer/rootcomponentgenerator/RootComponentGeneratingStep.java index ad91a3cbe..61c326a3c 100644 --- a/java/com/android/dialer/rootcomponentgenerator/processor/RootComponentGeneratingStep.java +++ b/java/com/android/dialer/rootcomponentgenerator/RootComponentGeneratingStep.java @@ -14,17 +14,17 @@ * limitations under the License */ -package com.android.dialer.rootcomponentgenerator.processor; +package com.android.dialer.rootcomponentgenerator; import static com.google.auto.common.AnnotationMirrors.getAnnotationValue; import static com.google.auto.common.MoreElements.getAnnotationMirror; import static com.google.auto.common.MoreElements.isAnnotationPresent; -import com.android.dialer.rootcomponentgenerator.annotation.DialerRootComponent; -import com.android.dialer.rootcomponentgenerator.annotation.DialerVariant; -import com.android.dialer.rootcomponentgenerator.annotation.IncludeInDialerRoot; -import com.android.dialer.rootcomponentgenerator.annotation.InstallIn; -import com.android.dialer.rootcomponentgenerator.annotation.RootComponentGeneratorMetadata; +import com.android.dialer.inject.DialerRootComponent; +import com.android.dialer.inject.DialerVariant; +import com.android.dialer.inject.IncludeInDialerRoot; +import com.android.dialer.inject.InstallIn; +import com.android.dialer.inject.RootComponentGeneratorMetadata; import com.google.auto.common.BasicAnnotationProcessor.ProcessingStep; import com.google.auto.common.MoreElements; import com.google.common.base.Optional; diff --git a/java/com/android/dialer/rootcomponentgenerator/processor/RootComponentProcessor.java b/java/com/android/dialer/rootcomponentgenerator/RootComponentProcessor.java index 56caa9ea4..76df5e312 100644 --- a/java/com/android/dialer/rootcomponentgenerator/processor/RootComponentProcessor.java +++ b/java/com/android/dialer/rootcomponentgenerator/RootComponentProcessor.java @@ -14,7 +14,7 @@ * limitations under the License */ -package com.android.dialer.rootcomponentgenerator.processor; +package com.android.dialer.rootcomponentgenerator; import com.google.auto.common.BasicAnnotationProcessor; import com.google.auto.service.AutoService; diff --git a/java/com/android/dialer/rootcomponentgenerator/processor/RootComponentUtils.java b/java/com/android/dialer/rootcomponentgenerator/RootComponentUtils.java index 889297154..cdcae9250 100644 --- a/java/com/android/dialer/rootcomponentgenerator/processor/RootComponentUtils.java +++ b/java/com/android/dialer/rootcomponentgenerator/RootComponentUtils.java @@ -14,7 +14,7 @@ * limitations under the License */ -package com.android.dialer.rootcomponentgenerator.processor; +package com.android.dialer.rootcomponentgenerator; import com.squareup.javapoet.JavaFile; import com.squareup.javapoet.TypeSpec; diff --git a/java/com/android/dialer/rootcomponentgenerator/annotation/DialerRootComponent.java b/java/com/android/dialer/rootcomponentgenerator/annotation/DialerRootComponent.java deleted file mode 100644 index b6bf22efb..000000000 --- a/java/com/android/dialer/rootcomponentgenerator/annotation/DialerRootComponent.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.rootcomponentgenerator.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotates the place with this annotation when a RootComponent is needed. - * - * <p>Usually users put this annotation on application class that is root of dependencies (the last - * thing to compile). The annotation processor will figure out what it needs to generate a variant - * root through dependencies. - * - * <p>Example: - * - * <pre> - * <code> - * @DialerRootComponent(variant = DialerVariant.DIALER_AOSP) - * public class RootDialerAosp {} - * </code> - * </pre> - */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.SOURCE) -public @interface DialerRootComponent { - DialerVariant variant(); -} diff --git a/java/com/android/dialer/rootcomponentgenerator/annotation/DialerVariant.java b/java/com/android/dialer/rootcomponentgenerator/annotation/DialerVariant.java deleted file mode 100644 index 0bb185296..000000000 --- a/java/com/android/dialer/rootcomponentgenerator/annotation/DialerVariant.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.rootcomponentgenerator.annotation; - -/** Represents all dialer variants. */ -public enum DialerVariant { - // AOSP Dialer variants - DIALER_AOSP("DialerAosp"), - DIALER_AOSP_ESPRESSO("DialerAospEspresso"), - DIALER_ROBOLECTRIC("DialerRobolectric"), - - - - // TEST variant will be used in situations where we need create in-test application class which - // doesn't belong to any variants listed above - DIALER_TEST("DialerTest"); - - private final String variant; - - DialerVariant(String variant) { - this.variant = variant; - } - - @Override - public String toString() { - return variant; - } -} diff --git a/java/com/android/dialer/rootcomponentgenerator/annotation/IncludeInDialerRoot.java b/java/com/android/dialer/rootcomponentgenerator/annotation/IncludeInDialerRoot.java deleted file mode 100644 index 4ce9ec3a3..000000000 --- a/java/com/android/dialer/rootcomponentgenerator/annotation/IncludeInDialerRoot.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.rootcomponentgenerator.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - -/** - * Annotates a type that should be included in Dialer Root Component. Typically, annotated types are - * HasComponent interfaces. - * - * <p>An example: - * - * <pre> - * <code> - * {@literal @}dagger.Subcomponent - * public abstract class SimulatorComponent { - * public static SimulatorComponent get(Context context) { - * return ((HasComponent)((HasRootComponent) context.getApplicationContext()).component()) - * .simulatorComponent(); - * } - * {@literal @}IncludeInDialerRoot - * public interface HasComponent { - * SimulatorComponent simulatorComponent(); - * } - * } - * </code> - * </pre> - */ -@Target(ElementType.TYPE) -public @interface IncludeInDialerRoot { - Class<?>[] modules() default {}; -} diff --git a/java/com/android/dialer/rootcomponentgenerator/annotation/InstallIn.java b/java/com/android/dialer/rootcomponentgenerator/annotation/InstallIn.java deleted file mode 100644 index 01a7873b0..000000000 --- a/java/com/android/dialer/rootcomponentgenerator/annotation/InstallIn.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.rootcomponentgenerator.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - -/** - * Annotation for {@link dagger.Module dagger.Modules} which causes them to be installed in the - * specified variants. - * - * <p>It has a parameter for users to enter on which variants annotated module will be installed and - * also must be non-empty. Example: - * - * <pre> - * <code> - * @InstallIn(variants = {DialerVariant.DIALER_AOSP, DialerVariant.DIALER_TEST}) - * public class Module1 {} - * - * </code> - * </pre> - */ -@Target(ElementType.TYPE) -public @interface InstallIn { - DialerVariant[] variants(); -} diff --git a/java/com/android/dialer/rootcomponentgenerator/annotation/RootComponentGeneratorMetadata.java b/java/com/android/dialer/rootcomponentgenerator/annotation/RootComponentGeneratorMetadata.java deleted file mode 100644 index 070cc7350..000000000 --- a/java/com/android/dialer/rootcomponentgenerator/annotation/RootComponentGeneratorMetadata.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.rootcomponentgenerator.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - -/** - * Only used by rootcomponent generator to store metadata for locating annotated - * (@DialerComponent, @InstallIn) class. - */ -@Target(ElementType.TYPE) -public @interface RootComponentGeneratorMetadata { - String tag(); - - Class<?> annotatedClass(); -} |