From 4ae808360491b778ccd29add7095a38e25a2c08e Mon Sep 17 00:00:00 2001 From: Pierre-Yves Ricau Date: Fri, 10 Aug 2012 15:36:32 +0200 Subject: [PATCH] Reading annotations from supertypes, no more abstract generated classes. #278 --- .../AndroidAnnotationProcessor.java | 11 +- .../AnnotatedAbstractProcessor.java | 36 ++++- .../annotations/AfterInject.java | 2 +- .../annotations/AfterTextChange.java | 2 +- .../annotations/AfterViews.java | 2 +- .../androidannotations/annotations/App.java | 2 +- .../annotations/Background.java | 2 +- .../annotations/BeforeTextChange.java | 2 +- .../androidannotations/annotations/Click.java | 2 +- .../annotations/EActivity.java | 2 +- .../annotations/EFragment.java | 2 +- .../annotations/EProvider.java | 2 +- .../annotations/EReceiver.java | 2 +- .../annotations/EService.java | 2 +- .../androidannotations/annotations/EView.java | 2 +- .../annotations/EViewGroup.java | 2 +- .../androidannotations/annotations/Extra.java | 2 +- .../annotations/FragmentById.java | 2 +- .../annotations/FragmentByTag.java | 2 +- .../annotations/FromHtml.java | 2 +- .../annotations/Fullscreen.java | 2 +- .../annotations/HttpsClient.java | 2 +- .../annotations/InstanceState.java | 2 +- .../annotations/ItemClick.java | 2 +- .../annotations/ItemLongClick.java | 2 +- .../annotations/ItemSelect.java | 2 +- .../annotations/LongClick.java | 2 +- .../annotations/NoTitle.java | 2 +- .../annotations/NonConfigurationInstance.java | 2 +- .../annotations/OptionsItem.java | 2 +- .../annotations/OptionsMenu.java | 2 +- .../annotations/RoboGuice.java | 2 +- .../annotations/RootContext.java | 2 +- .../annotations/SystemService.java | 2 +- .../annotations/TextChange.java | 2 +- .../androidannotations/annotations/Touch.java | 2 +- .../androidannotations/annotations/Trace.java | 2 +- .../annotations/Transactional.java | 2 +- .../annotations/UiThread.java | 2 +- .../annotations/ViewById.java | 2 +- .../annotations/res/AnimationRes.java | 2 +- .../annotations/res/BooleanRes.java | 2 +- .../annotations/res/ColorRes.java | 2 +- .../annotations/res/ColorStateListRes.java | 2 +- .../res/DimensionPixelOffsetRes.java | 2 +- .../res/DimensionPixelSizeRes.java | 2 +- .../annotations/res/DimensionRes.java | 2 +- .../annotations/res/DrawableRes.java | 2 +- .../annotations/res/HtmlRes.java | 2 +- .../annotations/res/IntArrayRes.java | 2 +- .../annotations/res/IntegerRes.java | 2 +- .../annotations/res/LayoutRes.java | 2 +- .../annotations/res/MovieRes.java | 2 +- .../annotations/res/StringArrayRes.java | 2 +- .../annotations/res/StringRes.java | 2 +- .../annotations/res/TextArrayRes.java | 2 +- .../annotations/res/TextRes.java | 2 +- .../annotations/rest/Accept.java | 2 +- .../annotations/rest/Delete.java | 2 +- .../annotations/rest/Get.java | 2 +- .../annotations/rest/Head.java | 2 +- .../annotations/rest/Options.java | 2 +- .../annotations/rest/Post.java | 2 +- .../annotations/rest/Put.java | 2 +- .../annotations/rest/RestService.java | 2 +- .../sharedpreferences/DefaultBoolean.java | 2 +- .../sharedpreferences/DefaultFloat.java | 2 +- .../sharedpreferences/DefaultInt.java | 2 +- .../sharedpreferences/DefaultLong.java | 2 +- .../sharedpreferences/DefaultString.java | 2 +- .../annotations/sharedpreferences/Pref.java | 2 +- .../sharedpreferences/SharedPref.java | 2 +- .../helper/AnnotationHelper.java | 78 +--------- .../helper/IdValidatorHelper.java | 13 +- .../helper/ValidatorHelper.java | 8 +- .../model/AnnotationElements.java | 15 +- .../model/AnnotationElementsHolder.java | 56 ++++--- .../model/EmptyAnnotationElements.java | 49 ------- .../model/ModelExtractor.java | 137 +++++++++++++++++- .../processing/AfterInjectProcessor.java | 6 +- .../processing/AfterTextChangeProcessor.java | 6 +- .../processing/AfterViewsProcessor.java | 6 +- .../processing/AppProcessor.java | 8 +- .../processing/BackgroundProcessor.java | 8 +- .../processing/BeanProcessor.java | 7 +- .../processing/BeforeTextChangeProcessor.java | 5 +- .../processing/ClickProcessor.java | 6 +- .../DecoratingElementProcessor.java | 31 ++++ .../processing/EActivityProcessor.java | 58 +------- .../processing/EApplicationProcessor.java | 6 +- .../processing/EBeanProcessor.java | 2 +- .../processing/EBeansHolder.java | 15 +- .../processing/EFragmentProcessor.java | 2 +- .../processing/EProviderProcessor.java | 6 +- .../processing/EReceiverProcessor.java | 6 +- .../processing/EServiceProcessor.java | 6 +- .../processing/EViewGroupProcessor.java | 2 +- .../processing/EViewProcessor.java | 2 +- .../processing/ExtraProcessor.java | 5 +- .../processing/FragmentByIdProcessor.java | 5 +- .../processing/FragmentByTagProcessor.java | 6 +- .../processing/FromHtmlProcessor.java | 5 +- .../processing/FullscreenProcessor.java | 6 +- ...r.java => GeneratingElementProcessor.java} | 2 +- .../processing/HttpsClientProcessor.java | 5 +- .../processing/InstanceStateProcessor.java | 5 +- .../processing/ItemClickProcessor.java | 5 +- .../processing/ItemLongClickProcessor.java | 5 +- .../processing/ItemSelectedProcessor.java | 5 +- .../processing/LongClickProcessor.java | 5 +- .../processing/ModelProcessor.java | 79 +++++++++- .../processing/NoTitleProcessor.java | 6 +- .../NonConfigurationInstanceProcessor.java | 5 +- .../processing/OptionsItemProcessor.java | 5 +- .../processing/OptionsMenuProcessor.java | 5 +- .../processing/PrefProcessor.java | 12 +- .../processing/ResProcessor.java | 5 +- .../processing/RestServiceProcessor.java | 5 +- .../processing/RoboGuiceProcessor.java | 5 +- .../processing/RootContextProcessor.java | 5 +- .../processing/SharedPrefProcessor.java | 18 +-- .../processing/SystemServiceProcessor.java | 6 +- .../processing/TextChangeProcessor.java | 6 +- .../processing/TouchProcessor.java | 5 +- .../processing/TraceProcessor.java | 5 +- .../processing/TransactionalProcessor.java | 5 +- .../processing/UiThreadProcessor.java | 6 +- .../processing/ViewByIdProcessor.java | 7 +- .../processing/rest/DeleteProcessor.java | 12 +- .../processing/rest/GetProcessor.java | 18 +-- .../processing/rest/HeadProcessor.java | 14 +- .../processing/rest/MethodProcessor.java | 32 ++-- .../rest/MethodProcessorHolder.java | 12 +- .../processing/rest/OptionsProcessor.java | 16 +- .../processing/rest/PostProcessor.java | 22 +-- .../processing/rest/PutProcessor.java | 12 +- .../processing/rest/RestProcessor.java | 13 +- .../validation/ModelValidator.java | 13 +- .../test15/AbstractActivityTest.java | 17 +-- .../test15/ExtendingActivity.java | 2 +- .../test15/prefs/SomePrefs.java | 2 +- 141 files changed, 595 insertions(+), 570 deletions(-) delete mode 100644 AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/EmptyAnnotationElements.java create mode 100644 AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/DecoratingElementProcessor.java rename AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/{ElementProcessor.java => GeneratingElementProcessor.java} (93%) diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/AndroidAnnotationProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/AndroidAnnotationProcessor.java index 8cd0855457..62b49e2204 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/AndroidAnnotationProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/AndroidAnnotationProcessor.java @@ -109,7 +109,6 @@ import com.googlecode.androidannotations.model.AndroidSystemServices; import com.googlecode.androidannotations.model.AnnotationElements; import com.googlecode.androidannotations.model.AnnotationElementsHolder; -import com.googlecode.androidannotations.model.EmptyAnnotationElements; import com.googlecode.androidannotations.model.ModelExtractor; import com.googlecode.androidannotations.processing.AfterInjectProcessor; import com.googlecode.androidannotations.processing.AfterTextChangeProcessor; @@ -340,9 +339,11 @@ private void processThrowing(Set annotations, RoundEnviro AnnotationElements validatedModel = validateAnnotations(extractedModel, rClass, androidSystemServices, androidManifest); - JCodeModel codeModel = processAnnotations(validatedModel, rClass, androidSystemServices, androidManifest); + if (validatedModel != null) { + JCodeModel codeModel = processAnnotations(validatedModel, rClass, androidSystemServices, androidManifest); - generateSources(codeModel); + generateSources(codeModel); + } } private boolean nothingToDo(Set annotations, RoundEnvironment roundEnv) { @@ -351,7 +352,7 @@ private boolean nothingToDo(Set annotations, RoundEnviron private AnnotationElementsHolder extractAnnotations(Set annotations, RoundEnvironment roundEnv) { timeStats.start("Extract Annotations"); - ModelExtractor modelExtractor = new ModelExtractor(); + ModelExtractor modelExtractor = new ModelExtractor(processingEnv, getSupportedAnnotationClasses()); AnnotationElementsHolder extractedModel = modelExtractor.extract(annotations, roundEnv); timeStats.stop("Extract Annotations"); return extractedModel; @@ -388,7 +389,7 @@ private AnnotationElements validateAnnotations(AnnotationElementsHolder extracte ModelValidator modelValidator = buildModelValidator(rClass, androidSystemServices, androidManifest); validatedAnnotations = modelValidator.validate(extractedModel); } else { - validatedAnnotations = EmptyAnnotationElements.INSTANCE; + validatedAnnotations = null; } timeStats.stop("Validate Annotations"); return validatedAnnotations; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotationprocessor/AnnotatedAbstractProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotationprocessor/AnnotatedAbstractProcessor.java index 9b721306e6..b33868c694 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotationprocessor/AnnotatedAbstractProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotationprocessor/AnnotatedAbstractProcessor.java @@ -44,18 +44,42 @@ public abstract class AnnotatedAbstractProcessor extends AbstractProcessor { * or {@link AbstractProcessor#getSupportedAnnotationTypes()} result * if none */ + @Override public Set getSupportedAnnotationTypes() { - SupportedAnnotationClasses sac = this.getClass().getAnnotation(SupportedAnnotationClasses.class); - if (sac == null) { - if (isInitialized()) + Class[] annotationClassesArray = readSupportedAnnotationClasses(); + if (annotationClassesArray == null) { + if (isInitialized()) { processingEnv.getMessager().printMessage(Diagnostic.Kind.WARNING, "No " + SupportedAnnotationClasses.class.getSimpleName() + " annotation " + "found on " + this.getClass().getName() + ", returning parent method result."); + } return super.getSupportedAnnotationTypes(); - } else - return arrayToSet(sac.value()); + } else { + return arrayToSet(annotationClassesArray); + } + } + + private Class[] readSupportedAnnotationClasses() { + SupportedAnnotationClasses sac = this.getClass().getAnnotation(SupportedAnnotationClasses.class); + if (sac != null) { + return sac.value(); + } else { + return null; + } + } + + public Set> getSupportedAnnotationClasses() { + Class[] annotationClassesArray = readSupportedAnnotationClasses(); + if (annotationClassesArray == null) { + return Collections.emptySet(); + } else { + Set> set = new HashSet>(annotationClassesArray.length); + for (Class c : annotationClassesArray) { + set.add(c); + } + return Collections.unmodifiableSet(set); + } } private static Set arrayToSet(Class[] array) { - assert array != null; Set set = new HashSet(array.length); for (Class c : array) { set.add(c.getName()); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterInject.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterInject.java index 144a3424ef..74b840d5e8 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterInject.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterInject.java @@ -33,7 +33,7 @@ * class. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface AfterInject { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterTextChange.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterTextChange.java index 0b03f3e937..2437a0d0eb 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterTextChange.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterTextChange.java @@ -74,7 +74,7 @@ * // Something Here * } */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface AfterTextChange { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterViews.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterViews.java index 3abd25ad5c..f2ea765104 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterViews.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/AfterViews.java @@ -35,7 +35,7 @@ * activity. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface AfterViews { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/App.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/App.java index 8bcb5636f0..3e48ee5e84 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/App.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/App.java @@ -24,7 +24,7 @@ * Injects the application. Please check that your registered the application in * the AndroidManifest.xml class prior to using this annotation. */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface App { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Background.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Background.java index 053bae9e1e..3e95ef5b3a 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Background.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Background.java @@ -25,7 +25,7 @@ * must belong to an activity annotated with @Layout. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Background { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/BeforeTextChange.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/BeforeTextChange.java index 201dcfa3b9..ef5b051866 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/BeforeTextChange.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/BeforeTextChange.java @@ -81,7 +81,7 @@ * * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface BeforeTextChange { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Click.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Click.java index 3d9d823b9d..0c13f28503 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Click.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Click.java @@ -30,7 +30,7 @@ * name will be used as the R.id.* field name. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Click { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EActivity.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EActivity.java index f558e35fa1..1ba7c321e9 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EActivity.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EActivity.java @@ -41,7 +41,7 @@ * AndroidAnnotations. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface EActivity { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EFragment.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EFragment.java index 15406495b6..ecff5287a1 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EFragment.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EFragment.java @@ -27,7 +27,7 @@ * to handle the view creation by yourself. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface EFragment { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EProvider.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EProvider.java index 52637563cf..e7410174fd 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EProvider.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EProvider.java @@ -23,7 +23,7 @@ /** * Use this annotation to enhance an Android ContentProvider */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface EProvider { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EReceiver.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EReceiver.java index 5eb906f5eb..c35a7def79 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EReceiver.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EReceiver.java @@ -23,7 +23,7 @@ /** * Use this annotation to enhance an Android BroadcastReceiver */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface EReceiver { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EService.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EService.java index 51a97ee639..11e20fa534 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EService.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EService.java @@ -23,7 +23,7 @@ /** * Use this annotation to enhance an Android Service */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface EService { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EView.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EView.java index b30fb6b29c..dd87483922 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EView.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EView.java @@ -46,7 +46,7 @@ * to build a custom component. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface EView { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EViewGroup.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EViewGroup.java index 44779929d2..ce9947dfd1 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EViewGroup.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/EViewGroup.java @@ -46,7 +46,7 @@ * to build a custom component. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface EViewGroup { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Extra.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Extra.java index bb55fe7015..700536c20d 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Extra.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Extra.java @@ -30,7 +30,7 @@ * annotated extras. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface Extra { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FragmentById.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FragmentById.java index 56b452f279..94d28e206d 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FragmentById.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FragmentById.java @@ -27,7 +27,7 @@ * name will be used as the R.id.* field name. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface FragmentById { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FragmentByTag.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FragmentByTag.java index 2c947a878a..4537e17512 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FragmentByTag.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FragmentByTag.java @@ -27,7 +27,7 @@ * field name will be used as tag name name. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface FragmentByTag { String value() default ""; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FromHtml.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FromHtml.java index 9479868249..a7540f9c90 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FromHtml.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/FromHtml.java @@ -20,7 +20,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface FromHtml { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Fullscreen.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Fullscreen.java index e09abbd2dd..c879dcf2e3 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Fullscreen.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Fullscreen.java @@ -26,7 +26,7 @@ * The activity must be annotated with {@link EActivity}. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface Fullscreen { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/HttpsClient.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/HttpsClient.java index be5b5e8902..18a2ab9fa8 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/HttpsClient.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/HttpsClient.java @@ -56,7 +56,7 @@ * * @author Nabil Hachicha */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface HttpsClient { public static final String DEFAULT_PASSWD = "changeit"; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/InstanceState.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/InstanceState.java index 5196f6d6b1..914a80bbf1 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/InstanceState.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/InstanceState.java @@ -24,7 +24,7 @@ * Use on activity fields to save and restore their values when the * system calls onSaveInstanceState(Bundle) and onCreate(Bundle). */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface InstanceState { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemClick.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemClick.java index c8b78d2c0e..2c5b2f74d7 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemClick.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemClick.java @@ -37,7 +37,7 @@ * @author Mathieu Boniface * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface ItemClick { int[] value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemLongClick.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemLongClick.java index c04fc96a57..32f593377f 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemLongClick.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemLongClick.java @@ -41,7 +41,7 @@ * @author Mathieu Boniface * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface ItemLongClick { int[] value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemSelect.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemSelect.java index 42e5c693d9..b1b014108f 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemSelect.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ItemSelect.java @@ -38,7 +38,7 @@ * @author Pierre-Yves Ricau * @author Mathieu Boniface */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface ItemSelect { int[] value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/LongClick.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/LongClick.java index 7c744cb2f8..92824ea825 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/LongClick.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/LongClick.java @@ -38,7 +38,7 @@ * @author Mathieu Boniface * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface LongClick { int[] value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/NoTitle.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/NoTitle.java index 510b82f662..1531e7a7c1 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/NoTitle.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/NoTitle.java @@ -26,7 +26,7 @@ * The activity must be annotated with {@link EActivity}. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface NoTitle { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/NonConfigurationInstance.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/NonConfigurationInstance.java index 37322c3976..f42e65b0e2 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/NonConfigurationInstance.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/NonConfigurationInstance.java @@ -38,7 +38,7 @@ * This caution doesn't apply to beans annotated with {@link Bean}, because * AndroidAnnotations automatically takes care of rebinding their context. */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface NonConfigurationInstance { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/OptionsItem.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/OptionsItem.java index 1fe0955088..19cf6eeb92 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/OptionsItem.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/OptionsItem.java @@ -30,7 +30,7 @@ * name will be used as the R.id.* field name. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface OptionsItem { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/OptionsMenu.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/OptionsMenu.java index 8c97530a5f..25e2766dff 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/OptionsMenu.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/OptionsMenu.java @@ -28,7 +28,7 @@ * The annotation value should be one of R.menu.* fields. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface OptionsMenu { int[] value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/RoboGuice.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/RoboGuice.java index 75f9f95dc4..f9d8f11ef3 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/RoboGuice.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/RoboGuice.java @@ -23,7 +23,7 @@ /** * Should be used on Activity classes that use the RoboGuice framework */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface RoboGuice { /** diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/RootContext.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/RootContext.java index 7a631a75fa..df03eb23f0 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/RootContext.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/RootContext.java @@ -31,7 +31,7 @@ * on a field that extends Activity, this field will be null at runtime. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface RootContext { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/SystemService.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/SystemService.java index 5e51e961e9..85c829f6ea 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/SystemService.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/SystemService.java @@ -24,7 +24,7 @@ * Use it on manager fields in activity classes * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface SystemService { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/TextChange.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/TextChange.java index 485f8bbd31..14c9218a85 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/TextChange.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/TextChange.java @@ -77,7 +77,7 @@ * // Something Here * } */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface TextChange { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Touch.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Touch.java index 90ac3d843e..b8cafae147 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Touch.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Touch.java @@ -35,7 +35,7 @@ * * @author Mathieu Boniface */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Touch { int[] value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Trace.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Trace.java index 85f140acef..42cf62bd2b 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Trace.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Trace.java @@ -34,7 +34,7 @@ * * @author Mathieu Boniface */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Trace { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Transactional.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Transactional.java index b08774a432..5dab2ac86b 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Transactional.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Transactional.java @@ -26,7 +26,7 @@ * The first parameter of the method must be a SQLiteDatabase. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Transactional { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/UiThread.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/UiThread.java index 520fcd2bc5..495e4ffe05 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/UiThread.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/UiThread.java @@ -27,7 +27,7 @@ * method will be executed. The default is 0 (no delay). * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface UiThread { long delay() default 0; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ViewById.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ViewById.java index 73ce4b00e0..d4fad72b26 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ViewById.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/ViewById.java @@ -29,7 +29,7 @@ * name will be used as the R.id.* field name. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface ViewById { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/AnimationRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/AnimationRes.java index 4a69975673..8075fb089b 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/AnimationRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/AnimationRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface AnimationRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/BooleanRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/BooleanRes.java index c1110eceb9..d7d3cbb46f 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/BooleanRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/BooleanRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface BooleanRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/ColorRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/ColorRes.java index 6a2435a3b4..fe803727c0 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/ColorRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/ColorRes.java @@ -32,7 +32,7 @@ * set, the field name will be used as the R.color.* field name. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface ColorRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/ColorStateListRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/ColorStateListRes.java index 88067b90f4..9d92aa2fb8 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/ColorStateListRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/ColorStateListRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface ColorStateListRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionPixelOffsetRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionPixelOffsetRes.java index 49fc4df065..146dc5fd77 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionPixelOffsetRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionPixelOffsetRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface DimensionPixelOffsetRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionPixelSizeRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionPixelSizeRes.java index e8fb86a7dc..2c1e511a32 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionPixelSizeRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionPixelSizeRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface DimensionPixelSizeRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionRes.java index fb66de9d66..67fc85a902 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DimensionRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface DimensionRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DrawableRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DrawableRes.java index 27211a8081..00fac3cf23 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DrawableRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/DrawableRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface DrawableRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/HtmlRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/HtmlRes.java index 9eceed1ea4..c6ab1b9a53 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/HtmlRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/HtmlRes.java @@ -22,7 +22,7 @@ import com.googlecode.androidannotations.annotations.ResId; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface HtmlRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/IntArrayRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/IntArrayRes.java index 5526987d60..550bf251a2 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/IntArrayRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/IntArrayRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface IntArrayRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/IntegerRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/IntegerRes.java index 38917c3ff3..e823082c59 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/IntegerRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/IntegerRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface IntegerRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/LayoutRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/LayoutRes.java index 57d0e3e74c..2d42b7a3da 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/LayoutRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/LayoutRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface LayoutRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/MovieRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/MovieRes.java index 94d3d2adea..517498aadd 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/MovieRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/MovieRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface MovieRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/StringArrayRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/StringArrayRes.java index 3603b96a26..6664f48ea8 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/StringArrayRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/StringArrayRes.java @@ -32,7 +32,7 @@ * set, the field name will be used as the R.array.* field name. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface StringArrayRes { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/StringRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/StringRes.java index 0954164525..fdef8498a3 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/StringRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/StringRes.java @@ -36,7 +36,7 @@ * be used. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface StringRes { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/TextArrayRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/TextArrayRes.java index a80212aca5..e00d77f3fa 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/TextArrayRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/TextArrayRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface TextArrayRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/TextRes.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/TextRes.java index bb16ccd65c..cf0c12b6b3 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/TextRes.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/res/TextRes.java @@ -26,7 +26,7 @@ * Use on fields in activity classes that should be injected with this specific * resource */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface TextRes { int value() default ResId.DEFAULT_VALUE; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Accept.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Accept.java index 0b1bc4c06c..68b8d707a8 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Accept.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Accept.java @@ -20,7 +20,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target({ ElementType.METHOD, ElementType.TYPE }) public @interface Accept { String value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Delete.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Delete.java index fc399a87f5..ef5f2f6785 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Delete.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Delete.java @@ -20,7 +20,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Delete { String value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Get.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Get.java index f34427d5c1..1b9d859c09 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Get.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Get.java @@ -20,7 +20,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Get { String value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Head.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Head.java index 1bc56587a3..4e467b5a9a 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Head.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Head.java @@ -20,7 +20,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Head { String value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Options.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Options.java index e12bd8ff13..c33f0c756f 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Options.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Options.java @@ -20,7 +20,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Options { String value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Post.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Post.java index d90fed9df9..e3b3e8f4a2 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Post.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Post.java @@ -20,7 +20,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Post { String value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Put.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Put.java index 9d73d8eed0..5f0da06547 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Put.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/Put.java @@ -20,7 +20,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface Put { String value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/RestService.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/RestService.java index ffaccd03ba..ad3f108ab4 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/RestService.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/rest/RestService.java @@ -28,7 +28,7 @@ * interface. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface RestService { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultBoolean.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultBoolean.java index eed7900335..c767c67e08 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultBoolean.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultBoolean.java @@ -23,7 +23,7 @@ /** * Default value for a preference field */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface DefaultBoolean { boolean value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultFloat.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultFloat.java index 1507d8e1b6..ed15ec28bc 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultFloat.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultFloat.java @@ -23,7 +23,7 @@ /** * Default value for a preference field */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface DefaultFloat { float value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultInt.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultInt.java index efd596428a..2ce916984c 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultInt.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultInt.java @@ -23,7 +23,7 @@ /** * Default value for a preference field */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface DefaultInt { int value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultLong.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultLong.java index d121e9554e..ffa2160449 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultLong.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultLong.java @@ -23,7 +23,7 @@ /** * Default value for a preference field */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface DefaultLong { long value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultString.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultString.java index 3c7d08ee9f..4e42a0428a 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultString.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/DefaultString.java @@ -23,7 +23,7 @@ /** * Default value for a preference field */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) public @interface DefaultString { String value(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/Pref.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/Pref.java index 8c864cd027..a5c42eab84 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/Pref.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/Pref.java @@ -29,7 +29,7 @@ * therefore extends {@link SharedPreferencesHelper}. * */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.FIELD) public @interface Pref { } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/SharedPref.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/SharedPref.java index 0d8eb05e77..d71fedc081 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/SharedPref.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/sharedpreferences/SharedPref.java @@ -27,7 +27,7 @@ * that will contain access methods related to the methods you define in the * interface. */ -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface SharedPref { public enum Scope { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/AnnotationHelper.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/AnnotationHelper.java index 6c606a5679..f5043cca63 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/AnnotationHelper.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/AnnotationHelper.java @@ -15,8 +15,6 @@ */ package com.googlecode.androidannotations.helper; -import static com.googlecode.androidannotations.helper.ModelConstants.GENERATION_SUFFIX; - import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.util.ArrayList; @@ -28,20 +26,14 @@ import javax.lang.model.element.Modifier; import javax.lang.model.element.NestingKind; import javax.lang.model.element.TypeElement; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.ErrorType; -import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; import javax.tools.Diagnostic; -import javax.tools.Diagnostic.Kind; import com.googlecode.androidannotations.annotations.OptionsItem; import com.googlecode.androidannotations.annotations.ResId; import com.googlecode.androidannotations.processing.EBeanHolder; -import com.googlecode.androidannotations.rclass.IRClass; -import com.googlecode.androidannotations.rclass.IRClass.Res; import com.googlecode.androidannotations.rclass.IRInnerClass; import com.googlecode.androidannotations.rclass.RInnerClass; import com.sun.codemodel.JFieldRef; @@ -57,76 +49,10 @@ public AnnotationHelper(ProcessingEnvironment processingEnv) { /** * Tests whether one type is a subtype of another. Any type is considered to * be a subtype of itself. - * - * This method adds additional behavior : if Types.isSubtype(TypeMirror, - * TypeMirror) returns false, and the inheritance chain of potentialSubtype - * contains an ErrorType that ends with a "_" at the end of its name, we - * return true. That's because when the code is cleaned and regenerated all - * at once, the "_" don't exist any more. Our assumption is that it can't do - * much harm in those cases. A better implementation would be to take - * advantage of the multiple rounds of annotation processing, and do those - * checks in later rounds. - * - * @param potentialSubtype - * the first type - * @param potentialSupertype - * the second type - * @return true if and only if the first type is a subtype of the second - * @throws IllegalArgumentException - * if given an executable or package type - * @see Types#isSubtype(TypeMirror, TypeMirror) */ public boolean isSubtype(TypeMirror potentialSubtype, TypeMirror potentialSupertype) { - if (processingEnv.getTypeUtils().isSubtype(potentialSubtype, potentialSupertype)) { - return true; - } else { - - if (potentialSubtype instanceof DeclaredType) { - - DeclaredType potentialDeclaredSubtype = (DeclaredType) potentialSubtype; - - Element potentialSubElement = potentialDeclaredSubtype.asElement(); - if (potentialSubElement instanceof TypeElement) { - TypeElement potentialSubDeclaredElement = (TypeElement) potentialSubElement; - - TypeMirror superclassTypeMirror = potentialSubDeclaredElement.getSuperclass(); - - if (isRootObjectClass(superclassTypeMirror)) { - return false; - } else { - if (superclassTypeMirror instanceof ErrorType) { - - ErrorType errorType = (ErrorType) superclassTypeMirror; - - Element errorElement = errorType.asElement(); - - String errorElementSimpleName = errorElement.getSimpleName().toString(); - if (errorElementSimpleName.endsWith(GENERATION_SUFFIX)) { - return true; - } else { - processingEnv.getMessager().printMessage(Kind.NOTE, String.format("The supertype %s of the potential subElement %s of potential supertype %s is an ErrorType that doesn't end with %s", errorElement, potentialSubElement, potentialSupertype, GENERATION_SUFFIX)); - return false; - } - - } else { - return isSubtype(superclassTypeMirror, potentialSupertype); - } - } - } else { - processingEnv.getMessager().printMessage(Kind.NOTE, String.format("The potential subElement %s of potential supertype %s is not a TypeElement but a %s", potentialSubElement, potentialSupertype, potentialSubElement.getClass())); - return false; - } - - } else { - processingEnv.getMessager().printMessage(Kind.NOTE, String.format("The potential subtype %s of potential supertype %s is not a DeclaredType but a %s", potentialSubtype, potentialSupertype, potentialSubtype.getClass())); - return false; - } - } - } - - private boolean isRootObjectClass(TypeMirror superclassTypeMirror) { - return superclassTypeMirror.getKind() == TypeKind.NONE; + return processingEnv.getTypeUtils().isSubtype(potentialSubtype, potentialSupertype); } public boolean isSubtype(TypeElement t1, TypeElement t2) { @@ -214,7 +140,7 @@ public Types getTypeUtils() { * Returns a list of {@link JFieldRef} linking to the R class, based on the * given annotation * - * @see #extractAnnotationResources(Element, Class, IRClass, Res, boolean) + * @see #extractAnnotationResources(Element, Class, IRInnerClass, boolean) */ public List extractAnnotationFieldRefs(EBeanHolder holder, Element element, Class target, IRInnerClass rInnerClass, boolean useElementName) { List fieldRefs = new ArrayList(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/IdValidatorHelper.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/IdValidatorHelper.java index 675beaebd2..9455e3dcf1 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/IdValidatorHelper.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/IdValidatorHelper.java @@ -39,17 +39,6 @@ public enum FallbackStrategy { USE_ELEMENT_NAME, ALLOW_NO_RES_ID, NEED_RES_ID } - /** - * @param element - * @param res - * @param useElementName - * if true, we will use the elementName as a fallback strategy, - * and in such case it MUST match a valid resource id. if false, - * we validate based on allowNoResId. - * @param allowNoResId - * Only taken into account if useElementName is false and - * @param valid - */ public void resIdsExist(Element element, Res res, FallbackStrategy fallbackStrategy, IsValid valid) { Class target = idAnnotationHelper.getTarget(); @@ -106,7 +95,7 @@ public void uniqueId(Element element, AnnotationElements validatedElements, IsVa List annotationQualifiedIds = idAnnotationHelper.extractAnnotationResources(element, Res.ID, true); Element elementEnclosingElement = element.getEnclosingElement(); - Set annotatedElements = validatedElements.getAnnotatedElements(annotationHelper.getTarget()); + Set annotatedElements = validatedElements.getRootAnnotatedElements(annotationHelper.getTarget().getName()); for (Element uniqueCheckElement : annotatedElements) { Element uniqueCheckEnclosingElement = uniqueCheckElement.getEnclosingElement(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/ValidatorHelper.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/ValidatorHelper.java index 028d57c0c3..5f11c73133 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/ValidatorHelper.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/ValidatorHelper.java @@ -209,7 +209,7 @@ private void hasOneOfClassAnnotations(Element reportElement, Element element, An for (Class validAnnotation : validAnnotations) { if (element.getAnnotation(validAnnotation) != null) { - Set layoutAnnotatedElements = validatedElements.getAnnotatedElements(validAnnotation); + Set layoutAnnotatedElements = validatedElements.getRootAnnotatedElements(validAnnotation.getName()); /* * This is for the case where the element has the right @@ -280,7 +280,7 @@ public void enclosingElementHasAnnotation(Class annotation public void elementHasAnnotation(Class annotation, Element element, AnnotationElements validatedElements, IsValid valid, String error) { - Set layoutAnnotatedElements = validatedElements.getAnnotatedElements(annotation); + Set layoutAnnotatedElements = validatedElements.getRootAnnotatedElements(annotation.getName()); if (!layoutAnnotatedElements.contains(element)) { valid.invalidate(); @@ -306,7 +306,7 @@ public void elementHasAnnotationContainsIn(List> ann } public boolean elementHasAnnotation(Class annotation, Element element, AnnotationElements validatedElements) { - Set layoutAnnotatedElements = validatedElements.getAnnotatedElements(annotation); + Set layoutAnnotatedElements = validatedElements.getRootAnnotatedElements(annotation.getName()); return layoutAnnotatedElements.contains(element); } @@ -610,7 +610,7 @@ public void isSharedPreference(Element element, AnnotationElements validatedElem if (elementTypeName.endsWith(GENERATION_SUFFIX)) { String prefTypeName = elementTypeName.substring(0, elementTypeName.length() - GENERATION_SUFFIX.length()); - Set sharedPrefElements = validatedElements.getAnnotatedElements(SharedPref.class); + Set sharedPrefElements = validatedElements.getRootAnnotatedElements(SharedPref.class.getName()); for (Element sharedPrefElement : sharedPrefElements) { TypeElement sharedPrefTypeElement = (TypeElement) sharedPrefElement; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/AnnotationElements.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/AnnotationElements.java index ad625e63b4..3626fa7461 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/AnnotationElements.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/AnnotationElements.java @@ -15,7 +15,6 @@ */ package com.googlecode.androidannotations.model; -import java.lang.annotation.Annotation; import java.util.Set; import javax.lang.model.element.Element; @@ -23,10 +22,20 @@ public interface AnnotationElements { + public static class AnnotatedAndRootElements { + public final Element annotatedElement; + public final TypeElement rootTypeElement; + + public AnnotatedAndRootElements(Element annotatedElement, TypeElement rootTypeElement) { + this.annotatedElement = annotatedElement; + this.rootTypeElement = rootTypeElement; + } + } + Set getAllElements(); - Set getAnnotatedElements(Class annotationClass); + Set getRootAnnotatedElements(String annotationName); - TypeElement annotationElementfromAnnotationClass(Class annotationClass); + Set getAncestorAnnotatedElements(String annotationName); } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/AnnotationElementsHolder.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/AnnotationElementsHolder.java index 34840a4fbb..9625cd4b52 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/AnnotationElementsHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/AnnotationElementsHolder.java @@ -15,11 +15,10 @@ */ package com.googlecode.androidannotations.model; -import java.lang.annotation.Annotation; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import javax.lang.model.element.Element; @@ -27,46 +26,57 @@ public class AnnotationElementsHolder implements AnnotationElements { - Map> annotatedElementsByAnnotation = new HashMap>(); + private final Map> rootAnnotatedElementsByAnnotation = new HashMap>(); + private final Map> ancestorAnnotatedElementsByAnnotation = new HashMap>(); - public void put(TypeElement annotation, Set annotatedElements) { - annotatedElementsByAnnotation.put(annotation, annotatedElements); + public void putRootAnnotatedElements(String annotationName, Set annotatedElements) { + rootAnnotatedElementsByAnnotation.put(annotationName, annotatedElements); } - @Override - public Set getAnnotatedElements(Class annotationClass) { + public void putAncestorAnnotatedElement(String annotationName, Element annotatedElement, TypeElement rootTypeElement) { + Set set = ancestorAnnotatedElementsByAnnotation.get(annotationName); + if (set == null) { + set = new HashSet(); + ancestorAnnotatedElementsByAnnotation.put(annotationName, set); + } + set.add(new AnnotatedAndRootElements(annotatedElement, rootTypeElement)); + } - TypeElement annotationElement = annotationElementfromAnnotationClass(annotationClass); - if (annotationElement != null) { - return new HashSet(annotatedElementsByAnnotation.get(annotationElement)); + @Override + public Set getAncestorAnnotatedElements(String annotationName) { + Set set = ancestorAnnotatedElementsByAnnotation.get(annotationName); + if (set != null) { + return set; } else { - return new HashSet(); + return Collections.emptySet(); } } - public TypeElement annotationElementfromAnnotationClass(Class annotationClass) { - for (Entry> annotatedElements : annotatedElementsByAnnotation.entrySet()) { - TypeElement elementAnnotation = annotatedElements.getKey(); - if (elementAnnotation != null) { - String elementAnnotationQualifiedName = elementAnnotation.getQualifiedName().toString(); - String annotationClassName = annotationClass.getName(); - if (elementAnnotationQualifiedName.equals(annotationClassName)) { - return elementAnnotation; - } - } + @Override + public Set getRootAnnotatedElements(String annotationName) { + Set set = rootAnnotatedElementsByAnnotation.get(annotationName); + if (set != null) { + return set; + } else { + return Collections.emptySet(); } - return null; } @Override public Set getAllElements() { Set allElements = new HashSet(); - for (Set annotatedElements : annotatedElementsByAnnotation.values()) { + for (Set annotatedElements : rootAnnotatedElementsByAnnotation.values()) { allElements.addAll(annotatedElements); } return allElements; } + public AnnotationElementsHolder validatingHolder() { + AnnotationElementsHolder holder = new AnnotationElementsHolder(); + holder.ancestorAnnotatedElementsByAnnotation.putAll(ancestorAnnotatedElementsByAnnotation); + return holder; + } + } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/EmptyAnnotationElements.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/EmptyAnnotationElements.java deleted file mode 100644 index 8aff54b785..0000000000 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/EmptyAnnotationElements.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright (C) 2010-2012 eBusiness Information, Excilys Group - * - * 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.googlecode.androidannotations.model; - -import java.lang.annotation.Annotation; -import java.util.HashSet; -import java.util.Set; - -import javax.lang.model.element.Element; -import javax.lang.model.element.TypeElement; - -public class EmptyAnnotationElements implements AnnotationElements { - - public static final EmptyAnnotationElements INSTANCE = new EmptyAnnotationElements(); - - private final Set emptySet = new HashSet(); - - private EmptyAnnotationElements() { - } - - @Override - public Set getAnnotatedElements(Class annotationClass) { - return emptySet; - } - - @Override - public TypeElement annotationElementfromAnnotationClass(Class annotationClass) { - return null; - } - - @Override - public Set getAllElements() { - return emptySet; - } - -} diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/ModelExtractor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/ModelExtractor.java index db51c3b721..90c21c08e4 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/ModelExtractor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/model/ModelExtractor.java @@ -15,20 +15,151 @@ */ package com.googlecode.androidannotations.model; +import java.lang.annotation.Annotation; +import java.util.HashSet; +import java.util.List; import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; import javax.annotation.processing.RoundEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; public class ModelExtractor { + private final ProcessingEnvironment processingEnv; + private final Set> lookupAnnotations; + + public ModelExtractor(ProcessingEnvironment processingEnv, Set> lookupAnnotations) { + this.processingEnv = processingEnv; + this.lookupAnnotations = lookupAnnotations; + } + + /** + * Extracts annotated elements on elements given to the annotation processor + * as well as annotations in their superclasses + */ public AnnotationElementsHolder extract(Set annotations, RoundEnvironment roundEnv) { + AnnotationElementsHolder extractedModel = new AnnotationElementsHolder(); - for (TypeElement annotation : annotations) { - extractedModel.put(annotation, roundEnv.getElementsAnnotatedWith(annotation)); - } + Set annotationTypesToCheck = buildAnnotationTypes(); + + Set rootElements = roundEnv.getRootElements(); + + Set rootTypeElements = findRootTypeElements(rootElements); + + extractAncestorsAnnotations(extractedModel, annotationTypesToCheck, rootTypeElements); + + extractRootElementsAnnotations(annotations, roundEnv, extractedModel); return extractedModel; } + + private Set buildAnnotationTypes() { + Set annotationTypesToCheck = new HashSet(); + for (Class annotation : lookupAnnotations) { + TypeElement typeElement = processingEnv.getElementUtils().getTypeElement(annotation.getName()); + annotationTypesToCheck.add((DeclaredType) typeElement.asType()); + } + return annotationTypesToCheck; + } + + /** + * Adds all root elements that are type element, and adds their enclosing + * type if they are not type elements (for annotated elements such as fields + * and methods). + */ + private Set findRootTypeElements(Set rootElements) { + Set rootTypeElements = new HashSet(); + for (Element element : rootElements) { + if (element instanceof TypeElement) { + rootTypeElements.add((TypeElement) element); + } else { + Element enclosingElement = element.getEnclosingElement(); + if (enclosingElement instanceof TypeElement) { + rootTypeElements.add((TypeElement) enclosingElement); + } + } + } + return rootTypeElements; + } + + private void extractAncestorsAnnotations(AnnotationElementsHolder extractedModel, Set annotationTypesToCheck, Set rootTypeElements) { + for (TypeElement rootTypeElement : rootTypeElements) { + Set ancestors = new HashSet(); + addAncestorsElements(ancestors, rootTypeElement); + if (!ancestors.isEmpty()) { + + for (TypeElement ancestor : ancestors) { + extractAnnotations(extractedModel, annotationTypesToCheck, rootTypeElement, ancestor); + + for (Element ancestorEnclosedElement : ancestor.getEnclosedElements()) { + ElementKind enclosedKind = ancestorEnclosedElement.getKind(); + if (enclosedKind == ElementKind.FIELD || enclosedKind == ElementKind.METHOD) { + extractAnnotations(extractedModel, annotationTypesToCheck, rootTypeElement, ancestorEnclosedElement); + } + } + } + } + } + } + + private void extractAnnotations(AnnotationElementsHolder extractedModel, Set annotationTypesToCheck, TypeElement rootTypeElement, Element ancestorEnclosedElement) { + List ancestorEnclosedElementAnnotations = ancestorEnclosedElement.getAnnotationMirrors(); + for (AnnotationMirror annotationMirror : ancestorEnclosedElementAnnotations) { + DeclaredType annotationType = annotationMirror.getAnnotationType(); + if (annotationTypesToCheck.contains(annotationType)) { + + TypeElement annotation = (TypeElement) annotationType.asElement(); + + /* + * rootTypeElement is one of the types that are being compiled + * + * ancestorEnclosedElement is the annotated element in an + * ancestor of rootTypeElement + * + * annotation is a type representing the annotation on + * ancestorEnclosedElement + */ + + extractedModel.putAncestorAnnotatedElement(annotation.getQualifiedName().toString(), ancestorEnclosedElement, rootTypeElement); + } + } + } + + /** + * Finds superclasses until reaching the Object class + */ + private void addAncestorsElements(Set elements, TypeElement element) { + if (element instanceof TypeElement) { + TypeElement typeElement = element; + TypeMirror ancestorTypeMirror = typeElement.getSuperclass(); + + if (!isRootObjectClass(ancestorTypeMirror) && ancestorTypeMirror instanceof DeclaredType) { + DeclaredType ancestorDeclaredType = (DeclaredType) ancestorTypeMirror; + Element ancestorElement = ancestorDeclaredType.asElement(); + if (ancestorElement instanceof TypeElement) { + elements.add((TypeElement) ancestorElement); + addAncestorsElements(elements, (TypeElement) ancestorElement); + } + } + } + } + + private boolean isRootObjectClass(TypeMirror typeMirror) { + return typeMirror.getKind() == TypeKind.NONE; + } + + private void extractRootElementsAnnotations(Set annotations, RoundEnvironment roundEnv, AnnotationElementsHolder extractedModel) { + for (TypeElement annotation : annotations) { + extractedModel.putRootAnnotatedElements(annotation.getQualifiedName().toString(), roundEnv.getElementsAnnotatedWith(annotation)); + } + } + } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterInjectProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterInjectProcessor.java index 722f4d3d49..b630993764 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterInjectProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterInjectProcessor.java @@ -22,7 +22,7 @@ import com.googlecode.androidannotations.annotations.AfterInject; import com.sun.codemodel.JCodeModel; -public class AfterInjectProcessor implements ElementProcessor { +public class AfterInjectProcessor implements DecoratingElementProcessor { @Override public Class getTarget() { @@ -30,9 +30,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); - + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String methodName = element.getSimpleName().toString(); holder.init.body().invoke(methodName); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterTextChangeProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterTextChangeProcessor.java index d52c2e0d3d..1bd6038a7a 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterTextChangeProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterTextChangeProcessor.java @@ -40,7 +40,7 @@ /** * @author Mathieu Boniface */ -public class AfterTextChangeProcessor implements ElementProcessor { +public class AfterTextChangeProcessor implements DecoratingElementProcessor { private final TextWatcherHelper helper; @@ -57,9 +57,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterViewsProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterViewsProcessor.java index 5e4bc02724..0ea421068e 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterViewsProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AfterViewsProcessor.java @@ -22,7 +22,7 @@ import com.googlecode.androidannotations.annotations.AfterViews; import com.sun.codemodel.JCodeModel; -public class AfterViewsProcessor implements ElementProcessor { +public class AfterViewsProcessor implements DecoratingElementProcessor { @Override public Class getTarget() { @@ -30,9 +30,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); - + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String methodName = element.getSimpleName().toString(); holder.afterSetContentView.body().invoke(methodName); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AppProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AppProcessor.java index f507e86061..24dd4596fe 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AppProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/AppProcessor.java @@ -28,7 +28,7 @@ import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JInvocation; -public class AppProcessor implements ElementProcessor { +public class AppProcessor implements DecoratingElementProcessor { @Override public Class getTarget() { @@ -36,9 +36,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) { - - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String fieldName = element.getSimpleName().toString(); @@ -50,7 +48,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo if (APPLICATION.equals(applicationTypeQualifiedName)) { holder.initIfActivityBody.assign(ref(fieldName), getApplication); } else { - holder.initIfActivityBody.assign(ref(fieldName), cast(eBeansHolder.refClass(applicationTypeQualifiedName), getApplication)); + holder.initIfActivityBody.assign(ref(fieldName), cast(holder.refClass(applicationTypeQualifiedName), getApplication)); } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BackgroundProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BackgroundProcessor.java index 34c4b4aa85..7f76ed4802 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BackgroundProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BackgroundProcessor.java @@ -31,7 +31,7 @@ import com.sun.codemodel.JInvocation; import com.sun.codemodel.JMethod; -public class BackgroundProcessor implements ElementProcessor { +public class BackgroundProcessor implements DecoratingElementProcessor { private final APTCodeModelHelper helper = new APTCodeModelHelper(); @@ -41,9 +41,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws JClassAlreadyExistsException { - - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) throws JClassAlreadyExistsException { ExecutableElement executableElement = (ExecutableElement) element; @@ -53,7 +51,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo { // Execute Runnable - JClass backgroundExecutorClass = eBeansHolder.refClass(BackgroundExecutor.class); + JClass backgroundExecutorClass = holder.refClass(BackgroundExecutor.class); JInvocation executeCall = backgroundExecutorClass.staticInvoke("execute").arg(JExpr._new(anonymousRunnableClass)); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BeanProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BeanProcessor.java index 1032428d05..893abce578 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BeanProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BeanProcessor.java @@ -34,7 +34,7 @@ import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JInvocation; -public class BeanProcessor implements ElementProcessor { +public class BeanProcessor implements DecoratingElementProcessor { private TargetAnnotationHelper annotationHelper; @@ -48,8 +48,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) { - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { DeclaredType targetAnnotationClassValue = annotationHelper.extractAnnotationClassParameter(element); @@ -64,7 +63,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo String typeQualifiedName = elementType.toString(); - JClass injectedClass = eBeansHolder.refClass(typeQualifiedName + GENERATION_SUFFIX); + JClass injectedClass = holder.refClass(typeQualifiedName + GENERATION_SUFFIX); { // getInstance diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BeforeTextChangeProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BeforeTextChangeProcessor.java index 195e4c9ed5..4e6d23cf26 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BeforeTextChangeProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/BeforeTextChangeProcessor.java @@ -41,7 +41,7 @@ /** * @author Mathieu Boniface */ -public class BeforeTextChangeProcessor implements ElementProcessor { +public class BeforeTextChangeProcessor implements DecoratingElementProcessor { private final TextWatcherHelper helper; @@ -58,8 +58,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ClickProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ClickProcessor.java index 605220b3f9..c2ba1af720 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ClickProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ClickProcessor.java @@ -46,7 +46,7 @@ * @author Mathieu Boniface * @author Pierre-Yves */ -public class ClickProcessor implements ElementProcessor { +public class ClickProcessor implements DecoratingElementProcessor { private final AnnotationHelper helper; private final IRClass rClass; @@ -62,9 +62,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/DecoratingElementProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/DecoratingElementProcessor.java new file mode 100644 index 0000000000..bea8d0bedb --- /dev/null +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/DecoratingElementProcessor.java @@ -0,0 +1,31 @@ +/** + * Copyright (C) 2010-2012 eBusiness Information, Excilys Group + * + * 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.googlecode.androidannotations.processing; + +import javax.lang.model.element.Element; + +import com.googlecode.androidannotations.helper.HasTarget; +import com.sun.codemodel.JCodeModel; + +/** + * An enclosed element is either a field or a method. If you come up with a + * better name, please let us know ! + */ +public interface DecoratingElementProcessor extends HasTarget { + + void process(Element element, JCodeModel codeModel, EBeanHolder eBeanHolder) throws Exception; + +} diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EActivityProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EActivityProcessor.java index 9fc13b6717..841ddffcb5 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EActivityProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EActivityProcessor.java @@ -24,14 +24,12 @@ import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.List; -import java.util.Set; import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.Modifier; import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeKind; import javax.lang.model.util.ElementFilter; @@ -55,7 +53,7 @@ import com.sun.codemodel.JType; import com.sun.codemodel.JVar; -public class EActivityProcessor implements ElementProcessor { +public class EActivityProcessor implements GeneratingElementProcessor { private final IRClass rClass; private List greendroidActivityElements; @@ -86,9 +84,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception { - EBeanHolder holder = activitiesHolder.create(element, getTarget()); + EBeanHolder holder = eBeansHolder.create(element, getTarget()); TypeElement typeElement = (TypeElement) element; @@ -99,13 +97,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti boolean usesGreenDroid = usesGreenDroid(typeElement); - int modifiers; - boolean isAbstract = element.getModifiers().contains(Modifier.ABSTRACT); - if (isAbstract) { - modifiers = JMod.PUBLIC | JMod.ABSTRACT; - } else { - modifiers = JMod.PUBLIC | JMod.FINAL; - } + int modifiers = JMod.PUBLIC | JMod.FINAL; holder.eBean = codeModel._class(modifiers, subActivityQualifiedName, ClassType.CLASS); @@ -116,13 +108,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti holder.contextRef = _this(); // onCreate - int onCreateVisibility; - if (isAbstract) { - onCreateVisibility = inheritedOnCreateVisibility(typeElement); - } else { - onCreateVisibility = PUBLIC; - } - JMethod onCreate = holder.eBean.method(onCreateVisibility, codeModel.VOID, "onCreate"); + JMethod onCreate = holder.eBean.method(PUBLIC, codeModel.VOID, "onCreate"); onCreate.annotate(Override.class); JClass bundleClass = holder.classes().BUNDLE; @@ -207,9 +193,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti } - if (!isAbstract) { - aptCodeModelHelper.addActivityIntentBuilder(codeModel, holder); - } + aptCodeModelHelper.addActivityIntentBuilder(codeModel, holder); } @@ -230,36 +214,6 @@ private void setContentViewMethod(String setContentViewMethodName, JCodeModel co body.invoke(holder.afterSetContentView); } - private int inheritedOnCreateVisibility(TypeElement activityElement) { - List allMembers = annotationHelper.getElementUtils().getAllMembers(activityElement); - - List activityInheritedMethods = ElementFilter.methodsIn(allMembers); - - for (ExecutableElement activityInheritedMethod : activityInheritedMethods) { - if (isOnCreateMethod(activityInheritedMethod)) { - Set modifiers = activityInheritedMethod.getModifiers(); - for (Modifier modifier : modifiers) { - if (modifier == Modifier.PUBLIC) { - return JMod.PUBLIC; - } else if (modifier == Modifier.PROTECTED) { - return JMod.PROTECTED; - } - } - return JMod.PUBLIC; - } - } - return PUBLIC; - } - - private boolean isOnCreateMethod(ExecutableElement method) { - - List parameters = method.getParameters(); - return method.getSimpleName().toString().equals("onCreate") // - && parameters.size() == 1 // - && parameters.get(0).asType().toString().equals(CanonicalNameConstants.BUNDLE) // - ; - } - private boolean hasOnBackPressedMethod(TypeElement activityElement) { List allMembers = annotationHelper.getElementUtils().getAllMembers(activityElement); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EApplicationProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EApplicationProcessor.java index 1fd38c1881..5a492e0e5b 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EApplicationProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EApplicationProcessor.java @@ -34,7 +34,7 @@ import com.sun.codemodel.JExpr; import com.sun.codemodel.JMethod; -public class EApplicationProcessor implements ElementProcessor { +public class EApplicationProcessor implements GeneratingElementProcessor { @Override public Class getTarget() { @@ -42,9 +42,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception { - EBeanHolder holder = activitiesHolder.create(element, getTarget()); + EBeanHolder holder = eBeansHolder.create(element, getTarget()); TypeElement typeElement = (TypeElement) element; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeanProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeanProcessor.java index 7215816f32..4253ba3bbe 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeanProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeanProcessor.java @@ -41,7 +41,7 @@ import com.sun.codemodel.JMethod; import com.sun.codemodel.JVar; -public class EBeanProcessor implements ElementProcessor { +public class EBeanProcessor implements GeneratingElementProcessor { public static final String GET_INSTANCE_METHOD_NAME = "getInstance" + GENERATION_SUFFIX; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeansHolder.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeansHolder.java index b41381e893..b2409819cc 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeansHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeansHolder.java @@ -124,7 +124,7 @@ public class Classes { } - private final Map EBeanHolders = new HashMap(); + private final Map eBeanHolders = new HashMap(); private final JCodeModel codeModel; @@ -137,19 +137,14 @@ public EBeansHolder(JCodeModel codeModel) { classes = new Classes(); } - public EBeanHolder create(Element activityElement, Class eBeanAnnotation) { + public EBeanHolder create(Element element, Class eBeanAnnotation) { EBeanHolder activityHolder = new EBeanHolder(this, eBeanAnnotation); - EBeanHolders.put(activityElement, activityHolder); + eBeanHolders.put(element, activityHolder); return activityHolder; } - public EBeanHolder getEnclosingEBeanHolder(Element enclosedElement) { - Element activityElement = enclosedElement.getEnclosingElement(); - return EBeanHolders.get(activityElement); - } - - public EBeanHolder getRelativeEBeanHolder(Element element) { - return EBeanHolders.get(element); + public EBeanHolder getEBeanHolder(Element element) { + return eBeanHolders.get(element); } public JClass refClass(String fullyQualifiedClassName) { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EFragmentProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EFragmentProcessor.java index ce4becb0cf..cbf6ca0bb4 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EFragmentProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EFragmentProcessor.java @@ -44,7 +44,7 @@ import com.sun.codemodel.JMethod; import com.sun.codemodel.JVar; -public class EFragmentProcessor implements ElementProcessor { +public class EFragmentProcessor implements GeneratingElementProcessor { private final IdAnnotationHelper helper; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EProviderProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EProviderProcessor.java index b499337349..5b14156120 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EProviderProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EProviderProcessor.java @@ -34,7 +34,7 @@ import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JMethod; -public class EProviderProcessor implements ElementProcessor { +public class EProviderProcessor implements GeneratingElementProcessor { @Override public Class getTarget() { @@ -42,9 +42,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception { - EBeanHolder holder = activitiesHolder.create(element, getTarget()); + EBeanHolder holder = eBeansHolder.create(element, getTarget()); TypeElement typeElement = (TypeElement) element; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EReceiverProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EReceiverProcessor.java index ce1fc6a804..68f48d27fe 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EReceiverProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EReceiverProcessor.java @@ -36,7 +36,7 @@ import com.sun.codemodel.JMethod; import com.sun.codemodel.JVar; -public class EReceiverProcessor implements ElementProcessor { +public class EReceiverProcessor implements GeneratingElementProcessor { @Override public Class getTarget() { @@ -44,9 +44,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception { - EBeanHolder holder = activitiesHolder.create(element, getTarget()); + EBeanHolder holder = eBeansHolder.create(element, getTarget()); TypeElement typeElement = (TypeElement) element; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EServiceProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EServiceProcessor.java index 5bf2571890..74672a1f5c 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EServiceProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EServiceProcessor.java @@ -35,7 +35,7 @@ import com.sun.codemodel.JExpr; import com.sun.codemodel.JMethod; -public class EServiceProcessor implements ElementProcessor { +public class EServiceProcessor implements GeneratingElementProcessor { private final APTCodeModelHelper aptCodeModelHelper; @@ -49,9 +49,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception { - EBeanHolder holder = activitiesHolder.create(element, getTarget()); + EBeanHolder holder = eBeansHolder.create(element, getTarget()); TypeElement typeElement = (TypeElement) element; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EViewGroupProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EViewGroupProcessor.java index 544c0fe3ec..81d55847c1 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EViewGroupProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EViewGroupProcessor.java @@ -44,7 +44,7 @@ import com.sun.codemodel.JMod; import com.sun.codemodel.JType; -public class EViewGroupProcessor implements ElementProcessor { +public class EViewGroupProcessor implements GeneratingElementProcessor { private static final String ALREADY_INFLATED_COMMENT = "" // + + "The mAlreadyInflated_ hack is needed because of an Android bug\n" // + diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EViewProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EViewProcessor.java index 238526ed9f..0e883a8f72 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EViewProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EViewProcessor.java @@ -38,7 +38,7 @@ import com.sun.codemodel.JMod; import com.sun.codemodel.JType; -public class EViewProcessor implements ElementProcessor { +public class EViewProcessor implements GeneratingElementProcessor { private static final String ALREADY_INFLATED_COMMENT = "" // + + "The mAlreadyInflated_ hack is needed because of an Android bug\n" // + diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ExtraProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ExtraProcessor.java index 048ccded6e..eef4d1861e 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ExtraProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ExtraProcessor.java @@ -52,7 +52,7 @@ import com.sun.codemodel.JTypeVar; import com.sun.codemodel.JVar; -public class ExtraProcessor implements ElementProcessor { +public class ExtraProcessor implements DecoratingElementProcessor { private final APTCodeModelHelper helper = new APTCodeModelHelper(); private final ProcessingEnvironment processingEnv; @@ -67,7 +67,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Extra annotation = element.getAnnotation(Extra.class); String extraKey = annotation.value(); String fieldName = element.getSimpleName().toString(); @@ -79,7 +79,6 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti TypeMirror elementType = element.asType(); boolean isPrimitive = elementType.getKind().isPrimitive(); - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); Classes classes = holder.classes(); if (!isPrimitive && holder.cast == null) { diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FragmentByIdProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FragmentByIdProcessor.java index 5c391f8be4..e57d8c6949 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FragmentByIdProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FragmentByIdProcessor.java @@ -39,7 +39,7 @@ import com.sun.codemodel.JMethod; import com.sun.codemodel.JVar; -public class FragmentByIdProcessor implements ElementProcessor { +public class FragmentByIdProcessor implements DecoratingElementProcessor { private final IdAnnotationHelper annotationHelper; @@ -53,9 +53,8 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) { + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); Classes classes = holder.classes(); String fieldName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FragmentByTagProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FragmentByTagProcessor.java index 789c50f035..1a769d53cc 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FragmentByTagProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FragmentByTagProcessor.java @@ -36,7 +36,7 @@ import com.sun.codemodel.JMethod; import com.sun.codemodel.JVar; -public class FragmentByTagProcessor implements ElementProcessor { +public class FragmentByTagProcessor implements DecoratingElementProcessor { private final AnnotationHelper annotationHelper; @@ -50,9 +50,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) { - - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String fieldName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FromHtmlProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FromHtmlProcessor.java index dbfef21ae6..66c14f4428 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FromHtmlProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FromHtmlProcessor.java @@ -32,7 +32,7 @@ import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JFieldRef; -public class FromHtmlProcessor implements ElementProcessor { +public class FromHtmlProcessor implements DecoratingElementProcessor { private final IdAnnotationHelper annotationHelper; @@ -46,8 +46,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) throws Exception { Classes classes = holder.classes(); String fieldName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FullscreenProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FullscreenProcessor.java index 98148d6af3..a5299a525a 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FullscreenProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/FullscreenProcessor.java @@ -26,7 +26,7 @@ import com.sun.codemodel.JFieldRef; import com.sun.codemodel.JInvocation; -public class FullscreenProcessor implements ElementProcessor { +public class FullscreenProcessor implements DecoratingElementProcessor { @Override public Class getTarget() { @@ -34,9 +34,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - - EBeanHolder holder = activitiesHolder.getRelativeEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { JFieldRef fullScreen = holder.classes().WINDOW_MANAGER_LAYOUT_PARAMS.staticRef("FLAG_FULLSCREEN"); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ElementProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/GeneratingElementProcessor.java similarity index 93% rename from AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ElementProcessor.java rename to AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/GeneratingElementProcessor.java index 900bb81b3f..cd55c9c7dc 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ElementProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/GeneratingElementProcessor.java @@ -20,7 +20,7 @@ import com.googlecode.androidannotations.helper.HasTarget; import com.sun.codemodel.JCodeModel; -public interface ElementProcessor extends HasTarget { +public interface GeneratingElementProcessor extends HasTarget { void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/HttpsClientProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/HttpsClientProcessor.java index 0982d8a048..1d738211df 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/HttpsClientProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/HttpsClientProcessor.java @@ -47,7 +47,7 @@ import com.sun.codemodel.JTryBlock; import com.sun.codemodel.JVar; -public class HttpsClientProcessor implements ElementProcessor { +public class HttpsClientProcessor implements DecoratingElementProcessor { private final IRClass rClass; @@ -61,8 +61,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) { - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { HttpsClient annotation = element.getAnnotation(HttpsClient.class); int trustStoreRawId = annotation.trustStore(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/InstanceStateProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/InstanceStateProcessor.java index e240f4bdab..18da66260e 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/InstanceStateProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/InstanceStateProcessor.java @@ -48,7 +48,7 @@ import com.sun.codemodel.JMethod; import com.sun.codemodel.JVar; -public class InstanceStateProcessor implements ElementProcessor { +public class InstanceStateProcessor implements DecoratingElementProcessor { private static final String BUNDLE_PARAM_NAME = "bundle"; @@ -104,8 +104,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String fieldName = element.getSimpleName().toString(); JBlock saveStateBody = getSaveStateMethodBody(codeModel, holder); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemClickProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemClickProcessor.java index 51262fe904..d3258b08df 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemClickProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemClickProcessor.java @@ -46,7 +46,7 @@ * @author Pierre-Yves Ricau * @author Mathieu Boniface */ -public class ItemClickProcessor implements ElementProcessor { +public class ItemClickProcessor implements DecoratingElementProcessor { private IdAnnotationHelper helper; @@ -60,8 +60,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemLongClickProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemLongClickProcessor.java index 468f8397f9..fea7ee23c8 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemLongClickProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemLongClickProcessor.java @@ -51,7 +51,7 @@ * @author Pierre-Yves Ricau * @author Mathieu Boniface */ -public class ItemLongClickProcessor implements ElementProcessor { +public class ItemLongClickProcessor implements DecoratingElementProcessor { private IdAnnotationHelper helper; @@ -65,8 +65,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemSelectedProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemSelectedProcessor.java index a70c34c9af..4cecab0946 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemSelectedProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ItemSelectedProcessor.java @@ -51,7 +51,7 @@ * @author Pierre-Yves Ricau * @author Mathieu Boniface */ -public class ItemSelectedProcessor implements ElementProcessor { +public class ItemSelectedProcessor implements DecoratingElementProcessor { private IdAnnotationHelper helper; @@ -65,8 +65,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/LongClickProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/LongClickProcessor.java index b2053cb9f9..6d1881d97f 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/LongClickProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/LongClickProcessor.java @@ -46,7 +46,7 @@ * @author Pierre-Yves Ricau * @author Mathieu Boniface */ -public class LongClickProcessor implements ElementProcessor { +public class LongClickProcessor implements DecoratingElementProcessor { private IdAnnotationHelper helper; @@ -60,8 +60,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ModelProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ModelProcessor.java index 1603c91a11..def151b2c3 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ModelProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ModelProcessor.java @@ -21,16 +21,25 @@ import java.util.Set; import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; import com.googlecode.androidannotations.model.AnnotationElements; +import com.googlecode.androidannotations.model.AnnotationElements.AnnotatedAndRootElements; import com.sun.codemodel.JCodeModel; public class ModelProcessor { - private final List processors = new ArrayList(); + private final List enclosedProcessors = new ArrayList(); + private final List typeProcessors = new ArrayList(); - public void register(ElementProcessor processor) { - processors.add(processor); + public void register(DecoratingElementProcessor processor) { + enclosedProcessors.add(processor); + } + + public void register(GeneratingElementProcessor processor) { + typeProcessors.add(processor); } public JCodeModel process(AnnotationElements validatedModel) throws Exception { @@ -38,16 +47,72 @@ public JCodeModel process(AnnotationElements validatedModel) throws Exception { JCodeModel codeModel = new JCodeModel(); EBeansHolder eBeansHolder = new EBeansHolder(codeModel); - for (ElementProcessor processor : processors) { + + for (GeneratingElementProcessor processor : typeProcessors) { + Class target = processor.getTarget(); + Set annotatedElements = validatedModel.getRootAnnotatedElements(target.getName()); + for (Element annotatedElement : annotatedElements) { + /* + * We do not generate code for abstract classes, because the + * generated classes are final anyway (we do not want anyone to + * extend them). + */ + if (!isAbstractClass(annotatedElement)) { + processor.process(annotatedElement, codeModel, eBeansHolder); + } + } + /* + * We currently do not take into account class annotations from + * ancestors. We should careful design the priority rules first. + */ + } + + for (DecoratingElementProcessor processor : enclosedProcessors) { Class target = processor.getTarget(); - Set annotatedElements = validatedModel.getAnnotatedElements(target); + Set rootAnnotatedElements = validatedModel.getRootAnnotatedElements(target.getName()); - for (Element annotatedElement : annotatedElements) { - processor.process(annotatedElement, codeModel, eBeansHolder); + for (Element annotatedElement : rootAnnotatedElements) { + + Element enclosingElement; + if (annotatedElement instanceof TypeElement) { + enclosingElement = annotatedElement; + } else { + + enclosingElement = annotatedElement.getEnclosingElement(); + } + + /* + * We do not generate code for elements belonging to abstract + * classes, because the generated classes are final anyway + */ + if (!isAbstractClass(enclosingElement)) { + EBeanHolder holder = eBeansHolder.getEBeanHolder(enclosingElement); + processor.process(annotatedElement, codeModel, holder); + } + } + + /* + * For ancestors, the processor manipulates the annotated elements, + * but uses the holder for the root element + */ + Set ancestorAnnotatedElements = validatedModel.getAncestorAnnotatedElements(target.getName()); + for (AnnotatedAndRootElements elements : ancestorAnnotatedElements) { + EBeanHolder holder = eBeansHolder.getEBeanHolder(elements.rootTypeElement); + processor.process(elements.annotatedElement, codeModel, holder); } } return codeModel; } + + private boolean isAbstractClass(Element annotatedElement) { + if (annotatedElement instanceof TypeElement) { + TypeElement typeElement = (TypeElement) annotatedElement; + + return typeElement.getKind() == ElementKind.CLASS && typeElement.getModifiers().contains(Modifier.ABSTRACT); + } else { + return false; + } + } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/NoTitleProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/NoTitleProcessor.java index 45aff3c881..52b43e197e 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/NoTitleProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/NoTitleProcessor.java @@ -23,7 +23,7 @@ import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JFieldRef; -public class NoTitleProcessor implements ElementProcessor { +public class NoTitleProcessor implements DecoratingElementProcessor { @Override public Class getTarget() { @@ -31,9 +31,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - - EBeanHolder holder = activitiesHolder.getRelativeEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { JFieldRef noTitle = holder.classes().WINDOW.staticRef("FEATURE_NO_TITLE"); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/NonConfigurationInstanceProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/NonConfigurationInstanceProcessor.java index 4b9e871cb6..96c066e136 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/NonConfigurationInstanceProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/NonConfigurationInstanceProcessor.java @@ -45,7 +45,7 @@ import com.sun.codemodel.JMod; import com.sun.codemodel.JVar; -public class NonConfigurationInstanceProcessor implements ElementProcessor { +public class NonConfigurationInstanceProcessor implements DecoratingElementProcessor { private APTCodeModelHelper aptCodeModelHelper; private AnnotationHelper annotationHelper; @@ -61,8 +61,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws JClassAlreadyExistsException { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) throws JClassAlreadyExistsException { NonConfigurationHolder ncHolder = holder.nonConfigurationHolder; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OptionsItemProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OptionsItemProcessor.java index bd95ba02cf..d9655f7a74 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OptionsItemProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OptionsItemProcessor.java @@ -49,7 +49,7 @@ /** * @author Pierre-Yves Ricau */ -public class OptionsItemProcessor implements ElementProcessor { +public class OptionsItemProcessor implements DecoratingElementProcessor { private final IdAnnotationHelper helper; @@ -66,8 +66,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OptionsMenuProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OptionsMenuProcessor.java index 379555a6eb..cc62bb6ef8 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OptionsMenuProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OptionsMenuProcessor.java @@ -42,7 +42,7 @@ import com.sun.codemodel.JType; import com.sun.codemodel.JVar; -public class OptionsMenuProcessor implements ElementProcessor { +public class OptionsMenuProcessor implements DecoratingElementProcessor { private final SherlockHelper sherlockHelper; @@ -59,8 +59,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getRelativeEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); boolean isFragment = holder.eBeanAnnotation == EFragment.class; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/PrefProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/PrefProcessor.java index 6379659198..cd951a10be 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/PrefProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/PrefProcessor.java @@ -33,7 +33,7 @@ import com.sun.codemodel.JExpr; import com.sun.codemodel.JFieldRef; -public class PrefProcessor implements ElementProcessor { +public class PrefProcessor implements DecoratingElementProcessor { private final AnnotationElements validatedModel; @@ -47,8 +47,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String fieldName = element.getSimpleName().toString(); @@ -58,9 +57,8 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti if (fieldTypeMirror instanceof ErrorType) { String elementTypeName = fieldTypeMirror.toString(); String prefTypeName = elementTypeName.substring(0, elementTypeName.length() - GENERATION_SUFFIX.length()); - Set sharedPrefElements = validatedModel.getAnnotatedElements(SharedPref.class); - - + Set sharedPrefElements = validatedModel.getRootAnnotatedElements(SharedPref.class.getName()); + for (Element sharedPrefElement : sharedPrefElements) { TypeElement sharedPrefTypeElement = (TypeElement) sharedPrefElement; @@ -72,7 +70,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti break; } } - + } JBlock methodBody = holder.init.body(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ResProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ResProcessor.java index dca7c16f71..7f9c1c0a35 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ResProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ResProcessor.java @@ -35,7 +35,7 @@ import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JFieldRef; -public class ResProcessor implements ElementProcessor { +public class ResProcessor implements DecoratingElementProcessor { private final AndroidRes androidValue; @@ -52,8 +52,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) { - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String fieldName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RestServiceProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RestServiceProcessor.java index a2da6c909c..1d4a403b88 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RestServiceProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RestServiceProcessor.java @@ -27,7 +27,7 @@ import com.sun.codemodel.JExpr; import com.sun.codemodel.JFieldRef; -public class RestServiceProcessor implements ElementProcessor { +public class RestServiceProcessor implements DecoratingElementProcessor { @Override public Class getTarget() { @@ -35,8 +35,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String fieldName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RoboGuiceProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RoboGuiceProcessor.java index 783f9a80d0..2f236c5d22 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RoboGuiceProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RoboGuiceProcessor.java @@ -45,7 +45,7 @@ import com.sun.codemodel.JTryBlock; import com.sun.codemodel.JVar; -public class RoboGuiceProcessor implements ElementProcessor { +public class RoboGuiceProcessor implements DecoratingElementProcessor { @Override public Class getTarget() { @@ -53,8 +53,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getRelativeEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { holder.eBean._implements(holder.classes().INJECTOR_PROVIDER); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RootContextProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RootContextProcessor.java index cc24bc8f46..5f55ee8833 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RootContextProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/RootContextProcessor.java @@ -29,7 +29,7 @@ import com.sun.codemodel.JClass; import com.sun.codemodel.JCodeModel; -public class RootContextProcessor implements ElementProcessor { +public class RootContextProcessor implements DecoratingElementProcessor { @Override public Class getTarget() { @@ -37,8 +37,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) { - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String fieldName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/SharedPrefProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/SharedPrefProcessor.java index ba42cf9bd1..726c1fe7ed 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/SharedPrefProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/SharedPrefProcessor.java @@ -62,7 +62,7 @@ import com.sun.codemodel.JMod; import com.sun.codemodel.JVar; -public class SharedPrefProcessor implements ElementProcessor { +public class SharedPrefProcessor implements GeneratingElementProcessor { private static class EditorFieldHolder { public final Class fieldClass; @@ -91,7 +91,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception { TypeElement typeElement = (TypeElement) element; @@ -114,11 +114,11 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti // Static editor class JDefinedClass editorClass = helperClass._class(JMod.PUBLIC | JMod.STATIC | JMod.FINAL, interfaceSimpleName + "Editor" + ModelConstants.GENERATION_SUFFIX); - editorClass._extends(activitiesHolder.refClass(EditorHelper.class).narrow(editorClass)); + editorClass._extends(eBeansHolder.refClass(EditorHelper.class).narrow(editorClass)); // Editor constructor JMethod editorConstructor = editorClass.constructor(JMod.NONE); - JClass sharedPreferencesClass = activitiesHolder.refClass("android.content.SharedPreferences"); + JClass sharedPreferencesClass = eBeansHolder.refClass("android.content.SharedPreferences"); JVar sharedPreferencesParam = editorConstructor.param(sharedPreferencesClass, "sharedPreferences"); editorConstructor.body().invoke("super").arg(sharedPreferencesParam); @@ -126,14 +126,14 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti for (ExecutableElement method : validMethods) { String returnType = method.getReturnType().toString(); EditorFieldHolder editorFieldHolder = EDITOR_FIELD_BY_TYPE.get(returnType); - JClass editorFieldClass = activitiesHolder.refClass(editorFieldHolder.fieldClass); + JClass editorFieldClass = eBeansHolder.refClass(editorFieldHolder.fieldClass); String fieldName = method.getSimpleName().toString(); JMethod editorFieldMethod = editorClass.method(JMod.PUBLIC, editorFieldClass.narrow(editorClass), fieldName); editorFieldMethod.body()._return(JExpr.invoke(editorFieldHolder.fieldMethodName).arg(fieldName)); } // Helper constructor - JClass contextClass = activitiesHolder.refClass("android.content.Context"); + JClass contextClass = eBeansHolder.refClass("android.content.Context"); SharedPref sharedPrefAnnotation = typeElement.getAnnotation(SharedPref.class); Scope scope = sharedPrefAnnotation.value(); @@ -143,7 +143,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti case ACTIVITY_DEFAULT: { JVar contextParam = constructor.param(contextClass, "context"); - JMethod getLocalClassName = getLocalClassName(activitiesHolder, helperClass, codeModel); + JMethod getLocalClassName = getLocalClassName(eBeansHolder, helperClass, codeModel); constructor.body().invoke("super") // .arg(contextParam.invoke("getSharedPreferences") // .arg(invoke(getLocalClassName).arg(contextParam)) // @@ -152,7 +152,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti } case ACTIVITY: { JVar contextParam = constructor.param(contextClass, "context"); - JMethod getLocalClassName = getLocalClassName(activitiesHolder, helperClass, codeModel); + JMethod getLocalClassName = getLocalClassName(eBeansHolder, helperClass, codeModel); constructor.body().invoke("super") // .arg(contextParam.invoke("getSharedPreferences") // .arg(invoke(getLocalClassName).arg(contextParam) // @@ -170,7 +170,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti break; } case APPLICATION_DEFAULT: { - JClass preferenceManagerClass = activitiesHolder.refClass("android.preference.PreferenceManager"); + JClass preferenceManagerClass = eBeansHolder.refClass("android.preference.PreferenceManager"); JVar contextParam = constructor.param(contextClass, "context"); constructor.body() // .invoke("super") // diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/SystemServiceProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/SystemServiceProcessor.java index b886a800c7..f46a5f7976 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/SystemServiceProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/SystemServiceProcessor.java @@ -29,7 +29,7 @@ import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JFieldRef; -public class SystemServiceProcessor implements ElementProcessor { +public class SystemServiceProcessor implements DecoratingElementProcessor { private final AndroidSystemServices androidSystemServices; @@ -43,9 +43,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String fieldName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TextChangeProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TextChangeProcessor.java index 5252efad30..a5bafa0040 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TextChangeProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TextChangeProcessor.java @@ -41,7 +41,7 @@ /** * @author Mathieu Boniface */ -public class TextChangeProcessor implements ElementProcessor { +public class TextChangeProcessor implements DecoratingElementProcessor { private final TextWatcherHelper helper; @@ -58,9 +58,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TouchProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TouchProcessor.java index ae6078ad10..5a571581bc 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TouchProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TouchProcessor.java @@ -47,7 +47,7 @@ * @author Pierre-Yves Ricau * @author Mathieu Boniface */ -public class TouchProcessor implements ElementProcessor { +public class TouchProcessor implements DecoratingElementProcessor { private IdAnnotationHelper helper; @@ -61,8 +61,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); String methodName = element.getSimpleName().toString(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TraceProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TraceProcessor.java index 88757cac77..5cbd91471d 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TraceProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TraceProcessor.java @@ -37,7 +37,7 @@ import com.sun.codemodel.JTryBlock; import com.sun.codemodel.JVar; -public class TraceProcessor implements ElementProcessor { +public class TraceProcessor implements DecoratingElementProcessor { private final APTCodeModelHelper helper = new APTCodeModelHelper(); @@ -47,8 +47,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { Classes classes = holder.classes(); ExecutableElement executableElement = (ExecutableElement) element; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TransactionalProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TransactionalProcessor.java index 35f280e440..382fe8b16e 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TransactionalProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/TransactionalProcessor.java @@ -33,7 +33,7 @@ import com.sun.codemodel.JTryBlock; import com.sun.codemodel.JVar; -public class TransactionalProcessor implements ElementProcessor { +public class TransactionalProcessor implements DecoratingElementProcessor { private final APTCodeModelHelper helper = new APTCodeModelHelper(); @@ -43,8 +43,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { - EBeanHolder holder = activitiesHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { ExecutableElement executableElement = (ExecutableElement) element; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/UiThreadProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/UiThreadProcessor.java index e28d20e622..544fe11876 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/UiThreadProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/UiThreadProcessor.java @@ -33,7 +33,7 @@ import com.sun.codemodel.JMethod; import com.sun.codemodel.JMod; -public class UiThreadProcessor implements ElementProcessor { +public class UiThreadProcessor implements DecoratingElementProcessor { private final APTCodeModelHelper helper = new APTCodeModelHelper(); @@ -43,9 +43,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws JClassAlreadyExistsException { - - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) throws JClassAlreadyExistsException { ExecutableElement executableElement = (ExecutableElement) element; diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ViewByIdProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ViewByIdProcessor.java index b122fd244a..6ee1c3ba42 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ViewByIdProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/ViewByIdProcessor.java @@ -33,7 +33,7 @@ import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JFieldRef; -public class ViewByIdProcessor implements ElementProcessor { +public class ViewByIdProcessor implements DecoratingElementProcessor { private final IdAnnotationHelper annotationHelper; @@ -47,10 +47,7 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) { - - EBeanHolder holder = eBeansHolder.getEnclosingEBeanHolder(element); - + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { String fieldName = element.getSimpleName().toString(); TypeMirror uiFieldTypeMirror = element.asType(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/DeleteProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/DeleteProcessor.java index d3b4b15344..cad7f42dde 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/DeleteProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/DeleteProcessor.java @@ -22,7 +22,7 @@ import javax.lang.model.element.ExecutableElement; import com.googlecode.androidannotations.annotations.rest.Delete; -import com.googlecode.androidannotations.processing.EBeansHolder; +import com.googlecode.androidannotations.processing.EBeanHolder; import com.sun.codemodel.JBlock; import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JExpr; @@ -31,7 +31,7 @@ public class DeleteProcessor extends MethodProcessor { - private EBeansHolder activitiesHolder; + private EBeanHolder holder; public DeleteProcessor(ProcessingEnvironment processingEnv, RestImplementationsHolder restImplementationHolder) { super(processingEnv, restImplementationHolder); @@ -43,15 +43,15 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) throws Exception { - this.activitiesHolder = activitiesHolder; + this.holder = holder; ExecutableElement executableElement = (ExecutableElement) element; Delete deleteAnnotation = element.getAnnotation(Delete.class); String urlSuffix = deleteAnnotation.value(); - generateRestTemplateCallBlock(new MethodProcessorHolder(activitiesHolder, executableElement, urlSuffix, null, null, codeModel)); + generateRestTemplateCallBlock(new MethodProcessorHolder(holder, executableElement, urlSuffix, null, null, codeModel)); } @Override @@ -72,7 +72,7 @@ protected JInvocation addResultCallMethod(JInvocation restCall, MethodProcessorH @Override protected JVar addHttpHeadersVar(JBlock body, ExecutableElement executableElement) { - return generateHttpHeadersVar(activitiesHolder, body, executableElement); + return generateHttpHeadersVar(holder, body, executableElement); } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/GetProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/GetProcessor.java index cff6ce382f..b7c5dd6070 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/GetProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/GetProcessor.java @@ -26,7 +26,7 @@ import com.googlecode.androidannotations.annotations.rest.Get; import com.googlecode.androidannotations.helper.CanonicalNameConstants; -import com.googlecode.androidannotations.processing.EBeansHolder; +import com.googlecode.androidannotations.processing.EBeanHolder; import com.sun.codemodel.JBlock; import com.sun.codemodel.JClass; import com.sun.codemodel.JCodeModel; @@ -36,7 +36,7 @@ public class GetProcessor extends MethodProcessor { - private EBeansHolder activitiesHolder; + private EBeanHolder holder; public GetProcessor(ProcessingEnvironment processingEnv, RestImplementationsHolder restImplementationHolder) { super(processingEnv, restImplementationHolder); @@ -48,9 +48,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { - this.activitiesHolder = activitiesHolder; + this.holder = holder; ExecutableElement executableElement = (ExecutableElement) element; TypeMirror returnType = executableElement.getReturnType(); @@ -63,10 +63,10 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti if (returnTypeString.startsWith(CanonicalNameConstants.RESPONSE_ENTITY)) { DeclaredType declaredReturnedType = (DeclaredType) returnType; TypeMirror typeParameter = declaredReturnedType.getTypeArguments().get(0); - expectedClass = activitiesHolder.refClass(typeParameter.toString()); - generatedReturnType = activitiesHolder.refClass(CanonicalNameConstants.RESPONSE_ENTITY).narrow(expectedClass); + expectedClass = holder.refClass(typeParameter.toString()); + generatedReturnType = holder.refClass(CanonicalNameConstants.RESPONSE_ENTITY).narrow(expectedClass); } else { - generatedReturnType = activitiesHolder.refClass(returnTypeString); + generatedReturnType = holder.refClass(returnTypeString); expectedClass = generatedReturnType; } } @@ -74,7 +74,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti Get getAnnotation = element.getAnnotation(Get.class); String urlSuffix = getAnnotation.value(); - generateRestTemplateCallBlock(new MethodProcessorHolder(activitiesHolder, executableElement, urlSuffix, expectedClass, generatedReturnType, codeModel)); + generateRestTemplateCallBlock(new MethodProcessorHolder(holder, executableElement, urlSuffix, expectedClass, generatedReturnType, codeModel)); } @Override @@ -107,7 +107,7 @@ protected JInvocation addResponseEntityArg(JInvocation restCall, MethodProcessor @Override protected JVar addHttpHeadersVar(JBlock body, ExecutableElement executableElement) { - return generateHttpHeadersVar(activitiesHolder, body, executableElement); + return generateHttpHeadersVar(holder, body, executableElement); } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/HeadProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/HeadProcessor.java index adaa903eae..ebc09b93b9 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/HeadProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/HeadProcessor.java @@ -23,7 +23,7 @@ import javax.lang.model.type.TypeMirror; import com.googlecode.androidannotations.annotations.rest.Head; -import com.googlecode.androidannotations.processing.EBeansHolder; +import com.googlecode.androidannotations.processing.EBeanHolder; import com.sun.codemodel.JBlock; import com.sun.codemodel.JClass; import com.sun.codemodel.JCodeModel; @@ -33,7 +33,7 @@ public class HeadProcessor extends MethodProcessor { - private EBeansHolder activitiesHolder; + private EBeanHolder holder; public HeadProcessor(ProcessingEnvironment processingEnv, RestImplementationsHolder restImplementationHolder) { super(processingEnv, restImplementationHolder); @@ -45,19 +45,19 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) throws Exception { - this.activitiesHolder = activitiesHolder; + this.holder = holder; ExecutableElement executableElement = (ExecutableElement) element; TypeMirror returnType = executableElement.getReturnType(); - JClass expectedClass = activitiesHolder.refClass(returnType.toString()); + JClass expectedClass = holder.refClass(returnType.toString()); Head headAnnotation = element.getAnnotation(Head.class); String urlSuffix = headAnnotation.value(); - generateRestTemplateCallBlock(new MethodProcessorHolder(activitiesHolder, executableElement, urlSuffix, expectedClass, expectedClass, codeModel)); + generateRestTemplateCallBlock(new MethodProcessorHolder(holder, executableElement, urlSuffix, expectedClass, expectedClass, codeModel)); } @Override @@ -77,7 +77,7 @@ protected JInvocation addResponseEntityArg(JInvocation restCall, MethodProcessor @Override protected JVar addHttpHeadersVar(JBlock body, ExecutableElement executableElement) { - return generateHttpHeadersVar(activitiesHolder, body, executableElement); + return generateHttpHeadersVar(holder, body, executableElement); } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/MethodProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/MethodProcessor.java index 52a1a158a5..2c6b47184b 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/MethodProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/MethodProcessor.java @@ -29,8 +29,8 @@ import com.googlecode.androidannotations.annotations.rest.Accept; import com.googlecode.androidannotations.helper.CanonicalNameConstants; import com.googlecode.androidannotations.helper.RestAnnotationHelper; -import com.googlecode.androidannotations.processing.EBeansHolder; -import com.googlecode.androidannotations.processing.ElementProcessor; +import com.googlecode.androidannotations.processing.EBeanHolder; +import com.googlecode.androidannotations.processing.DecoratingElementProcessor; import com.sun.codemodel.JBlock; import com.sun.codemodel.JClass; import com.sun.codemodel.JCodeModel; @@ -41,7 +41,7 @@ import com.sun.codemodel.JType; import com.sun.codemodel.JVar; -public abstract class MethodProcessor implements ElementProcessor { +public abstract class MethodProcessor implements DecoratingElementProcessor { protected final RestImplementationsHolder restImplementationsHolder; protected final RestAnnotationHelper restAnnotationHelper; @@ -78,13 +78,13 @@ protected void generateRestTemplateCallBlock(MethodProcessorHolder methodHolder) // add url param restCall.arg(concatCall.arg(JExpr.lit(methodHolder.getUrlSuffix()))); - EBeansHolder activitiesHolder = methodHolder.getActivitiesHolder(); - JClass httpMethod = activitiesHolder.refClass(CanonicalNameConstants.HTTP_METHOD); + EBeanHolder eBeanHolder = methodHolder.getHolder(); + JClass httpMethod = eBeanHolder.refClass(CanonicalNameConstants.HTTP_METHOD); // add method type param String restMethodInCapitalLetters = getTarget().getSimpleName().toUpperCase(); restCall.arg(httpMethod.staticRef(restMethodInCapitalLetters)); - TreeMap methodParams = (TreeMap) generateMethodParamsVar(activitiesHolder, method, executableElement, holder); + TreeMap methodParams = (TreeMap) generateMethodParamsVar(eBeanHolder, method, executableElement, holder); // update method holder methodHolder.setBody(body); @@ -141,8 +141,8 @@ private JVar generateHashMapVar(MethodProcessorHolder methodHolder) { protected JVar generateHttpEntityVar(MethodProcessorHolder methodHolder) { ExecutableElement executableElement = (ExecutableElement) methodHolder.getElement(); - EBeansHolder activitiesHolder = methodHolder.getActivitiesHolder(); - JClass httpEntity = activitiesHolder.refClass(CanonicalNameConstants.HTTP_ENTITY); + EBeanHolder holder = methodHolder.getHolder(); + JClass httpEntity = holder.refClass(CanonicalNameConstants.HTTP_ENTITY); JInvocation newHttpEntityVarCall; TreeMap methodParams = methodHolder.getMethodParams(); @@ -160,7 +160,7 @@ protected JVar generateHttpEntityVar(MethodProcessorHolder methodHolder) { } JBlock body = methodHolder.getBody(); - JVar httpHeadersVar = generateHttpHeadersVar(activitiesHolder, body, executableElement); + JVar httpHeadersVar = generateHttpHeadersVar(holder, body, executableElement); boolean hasHeaders = httpHeadersVar != null; @@ -185,17 +185,17 @@ protected JVar generateHttpEntityVar(MethodProcessorHolder methodHolder) { return httpEntityVar; } - protected JVar generateHttpHeadersVar(EBeansHolder activitiesHolder, JBlock body, ExecutableElement executableElement) { + protected JVar generateHttpHeadersVar(EBeanHolder holder, JBlock body, ExecutableElement executableElement) { JVar httpHeadersVar = null; - JClass httpHeadersClass = activitiesHolder.refClass(CanonicalNameConstants.HTTP_HEADERS); + JClass httpHeadersClass = holder.refClass(CanonicalNameConstants.HTTP_HEADERS); httpHeadersVar = body.decl(httpHeadersClass, "httpHeaders", JExpr._new(httpHeadersClass)); String mediaType = retrieveAcceptAnnotationValue(executableElement); boolean hasMediaTypeDefined = mediaType != null; if (hasMediaTypeDefined) { - JClass collectionsClass = activitiesHolder.refClass(CanonicalNameConstants.COLLECTIONS); - JClass mediaTypeClass = activitiesHolder.refClass(CanonicalNameConstants.MEDIA_TYPE); + JClass collectionsClass = holder.refClass(CanonicalNameConstants.COLLECTIONS); + JClass mediaTypeClass = holder.refClass(CanonicalNameConstants.MEDIA_TYPE); JInvocation mediaTypeListParam = collectionsClass.staticInvoke("singletonList").arg(mediaTypeClass.staticInvoke("parseMediaType").arg(mediaType)); body.add(JExpr.invoke(httpHeadersVar, "setAccept").arg(mediaTypeListParam)); @@ -216,7 +216,7 @@ private String retrieveAcceptAnnotationValue(ExecutableElement executableElement } } - private Map generateMethodParamsVar(EBeansHolder activitiesHolder, JMethod method, ExecutableElement executableElement, RestImplementationHolder holder) { + private Map generateMethodParamsVar(EBeanHolder eBeanHolder, JMethod method, ExecutableElement executableElement, RestImplementationHolder holder) { List params = executableElement.getParameters(); TreeMap methodParams = new TreeMap(); for (VariableElement parameter : params) { @@ -225,7 +225,7 @@ private Map generateMethodParamsVar(EBeansHolder activitiesHolder, // TODO check in validator that params are not generic. Or create a // helper to fix that case and generate the right code. - JVar param = method.param(activitiesHolder.refClass(paramType), paramName); + JVar param = method.param(eBeanHolder.refClass(paramType), paramName); methodParams.put(paramName, param); } @@ -238,6 +238,6 @@ private Map generateMethodParamsVar(EBeansHolder activitiesHolder, public abstract Class getTarget(); @Override - public abstract void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception; + public abstract void process(Element element, JCodeModel codeModel, EBeanHolder eBeanHolder) throws Exception; } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/MethodProcessorHolder.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/MethodProcessorHolder.java index 20a9eb7a77..ef9b583556 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/MethodProcessorHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/MethodProcessorHolder.java @@ -19,7 +19,7 @@ import javax.lang.model.element.Element; -import com.googlecode.androidannotations.processing.EBeansHolder; +import com.googlecode.androidannotations.processing.EBeanHolder; import com.sun.codemodel.JBlock; import com.sun.codemodel.JClass; import com.sun.codemodel.JCodeModel; @@ -35,10 +35,10 @@ public class MethodProcessorHolder { private JBlock body; private TreeMap methodParams; - private final EBeansHolder activitiesHolder; + private final EBeanHolder holder; - public MethodProcessorHolder(EBeansHolder activitiesHolder, Element element, String urlSuffix, JClass expectedClass, JClass generatedReturnType, JCodeModel codeModel) { - this.activitiesHolder = activitiesHolder; + public MethodProcessorHolder(EBeanHolder holder, Element element, String urlSuffix, JClass expectedClass, JClass generatedReturnType, JCodeModel codeModel) { + this.holder = holder; this.element = element; this.urlSuffix = urlSuffix; this.expectedClass = expectedClass; @@ -82,8 +82,8 @@ public void setMethodParams(TreeMap methodParams) { this.methodParams = methodParams; } - public EBeansHolder getActivitiesHolder() { - return activitiesHolder; + public EBeanHolder getHolder() { + return holder; } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/OptionsProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/OptionsProcessor.java index 0ebba6618a..33bf1b4f88 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/OptionsProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/OptionsProcessor.java @@ -25,7 +25,7 @@ import com.googlecode.androidannotations.annotations.rest.Options; import com.googlecode.androidannotations.helper.CanonicalNameConstants; -import com.googlecode.androidannotations.processing.EBeansHolder; +import com.googlecode.androidannotations.processing.EBeanHolder; import com.sun.codemodel.JBlock; import com.sun.codemodel.JClass; import com.sun.codemodel.JCodeModel; @@ -35,7 +35,7 @@ public class OptionsProcessor extends MethodProcessor { - private EBeansHolder activitiesHolder; + private EBeanHolder holder; public OptionsProcessor(ProcessingEnvironment processingEnv, RestImplementationsHolder restImplementationHolder) { super(processingEnv, restImplementationHolder); @@ -47,9 +47,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) throws Exception { - this.activitiesHolder = activitiesHolder; + this.holder = holder; ExecutableElement executableElement = (ExecutableElement) element; TypeMirror returnType = executableElement.getReturnType(); @@ -58,14 +58,14 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti TypeMirror typeParameter = declaredReturnType.getTypeArguments().get(0); - JClass expectedClass = activitiesHolder.refClass(typeParameter.toString()); + JClass expectedClass = holder.refClass(typeParameter.toString()); - JClass generatedReturnType = activitiesHolder.refClass(CanonicalNameConstants.SET).narrow(expectedClass); + JClass generatedReturnType = holder.refClass(CanonicalNameConstants.SET).narrow(expectedClass); Options optionsAnnotation = element.getAnnotation(Options.class); String urlSuffix = optionsAnnotation.value(); - generateRestTemplateCallBlock(new MethodProcessorHolder(activitiesHolder, executableElement, urlSuffix, expectedClass, generatedReturnType, codeModel)); + generateRestTemplateCallBlock(new MethodProcessorHolder(holder, executableElement, urlSuffix, expectedClass, generatedReturnType, codeModel)); } @Override @@ -87,7 +87,7 @@ protected JInvocation addResponseEntityArg(JInvocation restCall, MethodProcessor @Override protected JVar addHttpHeadersVar(JBlock body, ExecutableElement executableElement) { - return generateHttpHeadersVar(activitiesHolder, body, executableElement); + return generateHttpHeadersVar(holder, body, executableElement); } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/PostProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/PostProcessor.java index 438159a08f..1cfe0ae7c5 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/PostProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/PostProcessor.java @@ -26,7 +26,7 @@ import com.googlecode.androidannotations.annotations.rest.Post; import com.googlecode.androidannotations.helper.CanonicalNameConstants; -import com.googlecode.androidannotations.processing.EBeansHolder; +import com.googlecode.androidannotations.processing.EBeanHolder; import com.sun.codemodel.JBlock; import com.sun.codemodel.JClass; import com.sun.codemodel.JCodeModel; @@ -36,7 +36,7 @@ public class PostProcessor extends MethodProcessor { - private EBeansHolder activitiesHolder; + private EBeanHolder holder; public PostProcessor(ProcessingEnvironment processingEnv, RestImplementationsHolder restImplementationHolder) { super(processingEnv, restImplementationHolder); @@ -48,9 +48,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) { + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { - this.activitiesHolder = activitiesHolder; + this.holder = holder; ExecutableElement executableElement = (ExecutableElement) element; TypeMirror returnType = executableElement.getReturnType(); @@ -63,15 +63,15 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti if (returnTypeString.startsWith(CanonicalNameConstants.URI)) { DeclaredType declaredReturnedType = (DeclaredType) returnType; TypeMirror typeParameter = declaredReturnedType.getTypeArguments().get(0); - expectedClass = activitiesHolder.refClass(typeParameter.toString()); - generatedReturnType = activitiesHolder.refClass(CanonicalNameConstants.URI); + expectedClass = holder.refClass(typeParameter.toString()); + generatedReturnType = holder.refClass(CanonicalNameConstants.URI); } else if (returnTypeString.startsWith(CanonicalNameConstants.RESPONSE_ENTITY)) { DeclaredType declaredReturnedType = (DeclaredType) returnType; TypeMirror typeParameter = declaredReturnedType.getTypeArguments().get(0); - expectedClass = activitiesHolder.refClass(typeParameter.toString()); - generatedReturnType = activitiesHolder.refClass(CanonicalNameConstants.RESPONSE_ENTITY).narrow(expectedClass); + expectedClass = holder.refClass(typeParameter.toString()); + generatedReturnType = holder.refClass(CanonicalNameConstants.RESPONSE_ENTITY).narrow(expectedClass); } else { - generatedReturnType = activitiesHolder.refClass(returnTypeString); + generatedReturnType = holder.refClass(returnTypeString); expectedClass = generatedReturnType; } } @@ -79,7 +79,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti Post postAnnotation = element.getAnnotation(Post.class); String urlSuffix = postAnnotation.value(); - generateRestTemplateCallBlock(new MethodProcessorHolder(activitiesHolder, executableElement, urlSuffix, expectedClass, generatedReturnType, codeModel)); + generateRestTemplateCallBlock(new MethodProcessorHolder(holder, executableElement, urlSuffix, expectedClass, generatedReturnType, codeModel)); } @Override @@ -114,7 +114,7 @@ protected JInvocation addResultCallMethod(JInvocation restCall, MethodProcessorH @Override protected JVar addHttpHeadersVar(JBlock body, ExecutableElement executableElement) { - return generateHttpHeadersVar(activitiesHolder, body, executableElement); + return generateHttpHeadersVar(holder, body, executableElement); } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/PutProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/PutProcessor.java index ecffbaecdb..b851329dde 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/PutProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/PutProcessor.java @@ -22,7 +22,7 @@ import javax.lang.model.element.ExecutableElement; import com.googlecode.androidannotations.annotations.rest.Put; -import com.googlecode.androidannotations.processing.EBeansHolder; +import com.googlecode.androidannotations.processing.EBeanHolder; import com.sun.codemodel.JBlock; import com.sun.codemodel.JCodeModel; import com.sun.codemodel.JExpr; @@ -31,7 +31,7 @@ public class PutProcessor extends MethodProcessor { - private EBeansHolder activitiesHolder; + private EBeanHolder holder; public PutProcessor(ProcessingEnvironment processingEnv, RestImplementationsHolder restImplementationHolder) { super(processingEnv, restImplementationHolder); @@ -43,15 +43,15 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeanHolder holder) throws Exception { - this.activitiesHolder = activitiesHolder; + this.holder = holder; ExecutableElement executableElement = (ExecutableElement) element; Put putAnnotation = element.getAnnotation(Put.class); String urlSuffix = putAnnotation.value(); - generateRestTemplateCallBlock(new MethodProcessorHolder(activitiesHolder, executableElement, urlSuffix, null, null, codeModel)); + generateRestTemplateCallBlock(new MethodProcessorHolder(holder, executableElement, urlSuffix, null, null, codeModel)); } @Override @@ -71,7 +71,7 @@ protected JInvocation addResponseEntityArg(JInvocation restCall, MethodProcessor @Override protected JVar addHttpHeadersVar(JBlock body, ExecutableElement executableElement) { - return generateHttpHeadersVar(activitiesHolder, body, executableElement); + return generateHttpHeadersVar(holder, body, executableElement); } } diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/RestProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/RestProcessor.java index ad82bcb542..1cf7aace8e 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/RestProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/rest/RestProcessor.java @@ -30,7 +30,7 @@ import com.googlecode.androidannotations.annotations.rest.Rest; import com.googlecode.androidannotations.helper.ModelConstants; import com.googlecode.androidannotations.processing.EBeansHolder; -import com.googlecode.androidannotations.processing.ElementProcessor; +import com.googlecode.androidannotations.processing.GeneratingElementProcessor; import com.sun.codemodel.ClassType; import com.sun.codemodel.JClass; import com.sun.codemodel.JCodeModel; @@ -39,7 +39,7 @@ import com.sun.codemodel.JMod; import com.sun.codemodel.JVar; -public class RestProcessor implements ElementProcessor { +public class RestProcessor implements GeneratingElementProcessor { private static final String SPRING_REST_TEMPLATE_QUALIFIED_NAME = "org.springframework.web.client.RestTemplate"; private static final String JAVA_STRING_QUALIFIED_NAME = "java.lang.String"; @@ -55,8 +55,9 @@ public Class getTarget() { } @Override - public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception { + public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHolder) throws Exception { + eBeansHolder.create(element, getTarget()); RestImplementationHolder holder = restImplementationHolder.create(element); TypeElement typeElement = (TypeElement) element; @@ -67,15 +68,15 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti // holder.restImplementationClass = codeModel._class(JMod.PUBLIC | // JMod.ABSTRACT, implementationName, ClassType.CLASS); holder.restImplementationClass = codeModel._class(JMod.PUBLIC, implementationName, ClassType.CLASS); - JClass interfaceClass = activitiesHolder.refClass(interfaceName); + JClass interfaceClass = eBeansHolder.refClass(interfaceName); holder.restImplementationClass._implements(interfaceClass); // RestTemplate field - JClass restTemplateClass = activitiesHolder.refClass(SPRING_REST_TEMPLATE_QUALIFIED_NAME); + JClass restTemplateClass = eBeansHolder.refClass(SPRING_REST_TEMPLATE_QUALIFIED_NAME); holder.restTemplateField = holder.restImplementationClass.field(JMod.PRIVATE, restTemplateClass, "restTemplate"); // RootUrl field - JClass stringClass = activitiesHolder.refClass(JAVA_STRING_QUALIFIED_NAME); + JClass stringClass = eBeansHolder.refClass(JAVA_STRING_QUALIFIED_NAME); holder.rootUrlField = holder.restImplementationClass.field(JMod.PRIVATE, stringClass, "rootUrl"); // Default constructor diff --git a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/validation/ModelValidator.java b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/validation/ModelValidator.java index de444faec4..08a56f6686 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/validation/ModelValidator.java +++ b/AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/validation/ModelValidator.java @@ -22,7 +22,6 @@ import java.util.Set; import javax.lang.model.element.Element; -import javax.lang.model.element.TypeElement; import com.googlecode.androidannotations.model.AnnotationElements; import com.googlecode.androidannotations.model.AnnotationElementsHolder; @@ -37,17 +36,21 @@ public void register(ElementValidator validator) { public AnnotationElements validate(AnnotationElementsHolder extractedModel) { - AnnotationElementsHolder validatedElements = new AnnotationElementsHolder(); + /* + * We currently do not validate the elements on the ancestors, assuming + * they've already been validated. This also means some checks such as + * unique ids might not be check all situations. + */ + AnnotationElementsHolder validatedElements = extractedModel.validatingHolder(); for (ElementValidator validator : validators) { Class target = validator.getTarget(); - Set annotatedElements = extractedModel.getAnnotatedElements(target); + Set annotatedElements = extractedModel.getRootAnnotatedElements(target.getName()); - TypeElement annotationElement = extractedModel.annotationElementfromAnnotationClass(target); Set validatedAnnotatedElements = new HashSet(); - validatedElements.put(annotationElement, validatedAnnotatedElements); + validatedElements.putRootAnnotatedElements(target.getName(), validatedAnnotatedElements); for (Element annotatedElement : annotatedElements) { if (validator.validate(annotatedElement, validatedElements)) { diff --git a/AndroidAnnotations/functional-test-1-5-tests/src/test/java/com/googlecode/androidannotations/test15/AbstractActivityTest.java b/AndroidAnnotations/functional-test-1-5-tests/src/test/java/com/googlecode/androidannotations/test15/AbstractActivityTest.java index 6116b2ec35..241d8ab240 100644 --- a/AndroidAnnotations/functional-test-1-5-tests/src/test/java/com/googlecode/androidannotations/test15/AbstractActivityTest.java +++ b/AndroidAnnotations/functional-test-1-5-tests/src/test/java/com/googlecode/androidannotations/test15/AbstractActivityTest.java @@ -15,7 +15,6 @@ */ package com.googlecode.androidannotations.test15; -import static com.googlecode.androidannotations.test15.MyAssertions.assertThat; import static org.fest.assertions.Assertions.assertThat; import java.lang.reflect.Modifier; @@ -27,24 +26,10 @@ public class AbstractActivityTest { @Test - public void abstractActivityMustGenerateAbstractActivity() { - int modifiers = AbstractActivity_.class.getModifiers(); - - assertThat(Modifier.isAbstract(modifiers)).isTrue(); - } - - @Test - public void finalActivityShouldBeFinal() { + public void activityShouldBeFinal() { int modifiers = EmptyActivityWithoutLayout_.class.getModifiers(); assertThat(Modifier.isFinal(modifiers)).isTrue(); } - @Test - public void injectionWithConventionIsDone() { - ExtendingActivity_ activity = new ExtendingActivity_(); - activity.onCreate(null); - assertThat(activity.myButton).hasId(R.id.myButton); - } - } diff --git a/AndroidAnnotations/functional-test-1-5/src/main/java/com/googlecode/androidannotations/test15/ExtendingActivity.java b/AndroidAnnotations/functional-test-1-5/src/main/java/com/googlecode/androidannotations/test15/ExtendingActivity.java index 7ab7aaffb8..2beefc1e71 100644 --- a/AndroidAnnotations/functional-test-1-5/src/main/java/com/googlecode/androidannotations/test15/ExtendingActivity.java +++ b/AndroidAnnotations/functional-test-1-5/src/main/java/com/googlecode/androidannotations/test15/ExtendingActivity.java @@ -18,6 +18,6 @@ import com.googlecode.androidannotations.annotations.EActivity; @EActivity -public class ExtendingActivity extends AbstractActivity_ { +public class ExtendingActivity extends AbstractActivity { } diff --git a/AndroidAnnotations/functional-test-1-5/src/main/java/com/googlecode/androidannotations/test15/prefs/SomePrefs.java b/AndroidAnnotations/functional-test-1-5/src/main/java/com/googlecode/androidannotations/test15/prefs/SomePrefs.java index 1d4b42a298..f7626529e4 100644 --- a/AndroidAnnotations/functional-test-1-5/src/main/java/com/googlecode/androidannotations/test15/prefs/SomePrefs.java +++ b/AndroidAnnotations/functional-test-1-5/src/main/java/com/googlecode/androidannotations/test15/prefs/SomePrefs.java @@ -22,7 +22,7 @@ @SharedPref(Scope.UNIQUE) public interface SomePrefs { - + @DefaultString("John") String name();