Skip to content
This repository was archived by the owner on Feb 26, 2023. It is now read-only.

Commit 4063937

Browse files
committed
Create interface for AndroidAnnotationsEnvironment
1 parent 9d50b40 commit 4063937

4 files changed

Lines changed: 223 additions & 124 deletions

File tree

‎AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/AndroidAnnotationsEnvironment.java‎

Lines changed: 25 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -23,155 +23,61 @@
2323
import javax.lang.model.element.Element;
2424

2525
import org.androidannotations.handler.AnnotationHandler;
26-
import org.androidannotations.handler.AnnotationHandlers;
2726
import org.androidannotations.handler.GeneratingAnnotationHandler;
2827
import org.androidannotations.helper.AndroidManifest;
2928
import org.androidannotations.holder.GeneratedClassHolder;
30-
import org.androidannotations.model.AndroidSystemServices;
31-
import org.androidannotations.model.AnnotationElements;
29+
import org.androidannotations.internal.model.AnnotationElements;
30+
import org.androidannotations.internal.process.ProcessHolder;
3231
import org.androidannotations.plugin.AndroidAnnotationsPlugin;
33-
import org.androidannotations.process.Option;
34-
import org.androidannotations.process.Options;
35-
import org.androidannotations.process.ProcessHolder;
3632
import org.androidannotations.rclass.IRClass;
3733

3834
import com.sun.codemodel.JClass;
3935
import com.sun.codemodel.JCodeModel;
4036
import com.sun.codemodel.JDefinedClass;
4137

42-
public class AndroidAnnotationsEnvironment {
38+
public interface AndroidAnnotationsEnvironment {
4339

44-
private final ProcessingEnvironment processingEnvironment;
45-
private final Options options;
46-
private final AnnotationHandlers annotationHandlers;
40+
ProcessingEnvironment getProcessingEnvironment();
4741

48-
private List<AndroidAnnotationsPlugin> plugins;
42+
Set<String> getSupportedOptions();
4943

50-
private IRClass rClass;
51-
private AndroidSystemServices androidSystemServices;
52-
private AndroidManifest androidManifest;
44+
String getOptionValue(Option option);
5345

54-
private AnnotationElements validatedElements;
46+
String getOptionValue(String optionKey);
5547

56-
private ProcessHolder processHolder;
48+
boolean getOptionBooleanValue(Option option);
5749

58-
AndroidAnnotationsEnvironment(ProcessingEnvironment processingEnvironment) {
59-
this.processingEnvironment = processingEnvironment;
60-
options = new Options(processingEnvironment);
61-
annotationHandlers = new AnnotationHandlers();
62-
androidSystemServices = new AndroidSystemServices(this);
63-
}
50+
boolean getOptionBooleanValue(String optionKey);
6451

65-
public void setPlugins(List<AndroidAnnotationsPlugin> plugins) {
66-
this.plugins = plugins;
67-
for (AndroidAnnotationsPlugin plugin : plugins) {
68-
options.addAllSupportedOptions(plugin.getSupportedOptions());
69-
plugin.addHandlers(annotationHandlers, this);
70-
}
71-
}
52+
Set<String> getSupportedAnnotationTypes();
7253

73-
public void setAndroidEnvironment(IRClass rClass, AndroidManifest androidManifest) {
74-
this.rClass = rClass;
75-
this.androidManifest = androidManifest;
76-
}
54+
List<AnnotationHandler<? extends GeneratedClassHolder>> getHandlers();
7755

78-
public void setValidatedElements(AnnotationElements validatedElements) {
79-
this.validatedElements = validatedElements;
80-
}
56+
List<AnnotationHandler<? extends GeneratedClassHolder>> getDecoratingHandlers();
8157

82-
public void setProcessHolder(ProcessHolder processHolder) {
83-
this.processHolder = processHolder;
84-
}
58+
List<GeneratingAnnotationHandler<? extends GeneratedClassHolder>> getGeneratingHandlers();
8559

86-
public ProcessingEnvironment getProcessingEnvironment() {
87-
return processingEnvironment;
88-
}
60+
IRClass getRClass();
8961

90-
public Set<String> getSupportedOptions() {
91-
return options.getSupportedOptions();
92-
}
62+
AndroidManifest getAndroidManifest();
9363

94-
public String getOptionValue(Option option) {
95-
return options.get(option);
96-
}
64+
AnnotationElements getValidatedElements();
9765

98-
public String getOptionValue(String optionKey) {
99-
return options.get(optionKey);
100-
}
66+
JCodeModel getCodeModel();
10167

102-
public boolean getOptionBooleanValue(Option option) {
103-
return options.getBoolean(option);
104-
}
68+
JClass getJClass(String fullyQualifiedName);
10569

106-
public boolean getOptionBooleanValue(String optionKey) {
107-
return options.getBoolean(optionKey);
108-
}
70+
JClass getJClass(Class<?> clazz);
10971

110-
public Set<String> getSupportedAnnotationTypes() {
111-
return annotationHandlers.getSupportedAnnotationTypes();
112-
}
72+
JDefinedClass getDefinedClass(String fullyQualifiedName);
11373

114-
public List<AnnotationHandler<? extends GeneratedClassHolder>> getHandlers() {
115-
return annotationHandlers.get();
116-
}
74+
GeneratedClassHolder getGeneratedClassHolder(Element element);
11775

118-
public List<AnnotationHandler<? extends GeneratedClassHolder>> getDecoratingHandlers() {
119-
return annotationHandlers.getDecorating();
120-
}
76+
ProcessHolder.Classes getClasses();
12177

122-
public List<GeneratingAnnotationHandler<? extends GeneratedClassHolder>> getGeneratingHandlers() {
123-
return annotationHandlers.getGenerating();
124-
}
78+
List<Class<? extends Annotation>> getGeneratingAnnotations();
12579

126-
public IRClass getRClass() {
127-
return rClass;
128-
}
80+
boolean isAndroidAnnotation(String annotationQualifiedName);
12981

130-
public AndroidSystemServices getAndroidSystemServices() {
131-
return androidSystemServices;
132-
}
133-
134-
public AndroidManifest getAndroidManifest() {
135-
return androidManifest;
136-
}
137-
138-
public AnnotationElements getValidatedElements() {
139-
return validatedElements;
140-
}
141-
142-
public JCodeModel getCodeModel() {
143-
return processHolder.codeModel();
144-
}
145-
146-
public JClass getJClass(String fullyQualifiedName) {
147-
return processHolder.refClass(fullyQualifiedName);
148-
}
149-
150-
public JClass getJClass(Class<?> clazz) {
151-
return processHolder.refClass(clazz);
152-
}
153-
154-
public JDefinedClass getDefinedClass(String fullyQualifiedName) {
155-
return processHolder.definedClass(fullyQualifiedName);
156-
}
157-
158-
public GeneratedClassHolder getGeneratedClassHolder(Element element) {
159-
return processHolder.getGeneratedClassHolder(element);
160-
}
161-
162-
public ProcessHolder.Classes getClasses() {
163-
return processHolder.classes();
164-
}
165-
166-
public List<Class<? extends Annotation>> getGeneratingAnnotations() {
167-
return annotationHandlers.getGeneratingAnnotations();
168-
}
169-
170-
public boolean isAndroidAnnotation(String annotationQualifiedName) {
171-
return getSupportedAnnotationTypes().contains(annotationQualifiedName);
172-
}
173-
174-
public List<AndroidAnnotationsPlugin> getPlugins() {
175-
return plugins;
176-
}
82+
List<AndroidAnnotationsPlugin> getPlugins();
17783
}

‎AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/AndroidAnnotationProcessor.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ public class AndroidAnnotationProcessor extends AbstractProcessor {
6767

6868
private final TimeStats timeStats = new TimeStats();
6969
private final ErrorHelper errorHelper = new ErrorHelper();
70-
private AndroidAnnotationsEnvironment androidAnnotationsEnv;
70+
private InternalAndroidAnnotationsEnvironment androidAnnotationsEnv;
7171

7272
@Override
7373
public synchronized void init(ProcessingEnvironment processingEnv) {
7474
super.init(processingEnv);
75-
androidAnnotationsEnv = new AndroidAnnotationsEnvironment(processingEnv);
75+
androidAnnotationsEnv = new InternalAndroidAnnotationsEnvironment(processingEnv);
7676

7777
ModelConstants.init(androidAnnotationsEnv);
7878

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
/**
2+
* Copyright (C) 2010-2015 eBusiness Information, Excilys Group
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
5+
* use this file except in compliance with the License. You may obtain a copy of
6+
* the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed To in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13+
* License for the specific language governing permissions and limitations under
14+
* the License.
15+
*/
16+
package org.androidannotations.internal;
17+
18+
import java.lang.annotation.Annotation;
19+
import java.util.List;
20+
import java.util.Set;
21+
22+
import javax.annotation.processing.ProcessingEnvironment;
23+
import javax.lang.model.element.Element;
24+
25+
import org.androidannotations.AndroidAnnotationsEnvironment;
26+
import org.androidannotations.Option;
27+
import org.androidannotations.Options;
28+
import org.androidannotations.handler.AnnotationHandler;
29+
import org.androidannotations.handler.AnnotationHandlers;
30+
import org.androidannotations.handler.GeneratingAnnotationHandler;
31+
import org.androidannotations.helper.AndroidManifest;
32+
import org.androidannotations.holder.GeneratedClassHolder;
33+
import org.androidannotations.internal.model.AnnotationElements;
34+
import org.androidannotations.internal.process.ProcessHolder;
35+
import org.androidannotations.plugin.AndroidAnnotationsPlugin;
36+
import org.androidannotations.rclass.IRClass;
37+
38+
import com.sun.codemodel.JClass;
39+
import com.sun.codemodel.JCodeModel;
40+
import com.sun.codemodel.JDefinedClass;
41+
42+
public class InternalAndroidAnnotationsEnvironment implements AndroidAnnotationsEnvironment {
43+
44+
private final ProcessingEnvironment processingEnvironment;
45+
private final Options options;
46+
private final AnnotationHandlers annotationHandlers;
47+
48+
private List<AndroidAnnotationsPlugin> plugins;
49+
50+
private IRClass rClass;
51+
private AndroidManifest androidManifest;
52+
53+
private AnnotationElements validatedElements;
54+
55+
private ProcessHolder processHolder;
56+
57+
InternalAndroidAnnotationsEnvironment(ProcessingEnvironment processingEnvironment) {
58+
this.processingEnvironment = processingEnvironment;
59+
options = new Options(processingEnvironment);
60+
annotationHandlers = new AnnotationHandlers();
61+
}
62+
63+
public void setPlugins(List<AndroidAnnotationsPlugin> plugins) {
64+
this.plugins = plugins;
65+
for (AndroidAnnotationsPlugin plugin : plugins) {
66+
options.addAllSupportedOptions(plugin.getSupportedOptions());
67+
plugin.addHandlers(annotationHandlers, this);
68+
}
69+
}
70+
71+
public void setAndroidEnvironment(IRClass rClass, AndroidManifest androidManifest) {
72+
this.rClass = rClass;
73+
this.androidManifest = androidManifest;
74+
}
75+
76+
public void setValidatedElements(AnnotationElements validatedElements) {
77+
this.validatedElements = validatedElements;
78+
}
79+
80+
public void setProcessHolder(ProcessHolder processHolder) {
81+
this.processHolder = processHolder;
82+
}
83+
84+
@Override
85+
public ProcessingEnvironment getProcessingEnvironment() {
86+
return processingEnvironment;
87+
}
88+
89+
@Override
90+
public Set<String> getSupportedOptions() {
91+
return options.getSupportedOptions();
92+
}
93+
94+
@Override
95+
public String getOptionValue(Option option) {
96+
return options.get(option);
97+
}
98+
99+
@Override
100+
public String getOptionValue(String optionKey) {
101+
return options.get(optionKey);
102+
}
103+
104+
@Override
105+
public boolean getOptionBooleanValue(Option option) {
106+
return options.getBoolean(option);
107+
}
108+
109+
@Override
110+
public boolean getOptionBooleanValue(String optionKey) {
111+
return options.getBoolean(optionKey);
112+
}
113+
114+
@Override
115+
public Set<String> getSupportedAnnotationTypes() {
116+
return annotationHandlers.getSupportedAnnotationTypes();
117+
}
118+
119+
@Override
120+
public List<AnnotationHandler<? extends GeneratedClassHolder>> getHandlers() {
121+
return annotationHandlers.get();
122+
}
123+
124+
@Override
125+
public List<AnnotationHandler<? extends GeneratedClassHolder>> getDecoratingHandlers() {
126+
return annotationHandlers.getDecorating();
127+
}
128+
129+
@Override
130+
public List<GeneratingAnnotationHandler<? extends GeneratedClassHolder>> getGeneratingHandlers() {
131+
return annotationHandlers.getGenerating();
132+
}
133+
134+
@Override
135+
public IRClass getRClass() {
136+
return rClass;
137+
}
138+
139+
@Override
140+
public AndroidManifest getAndroidManifest() {
141+
return androidManifest;
142+
}
143+
144+
@Override
145+
public AnnotationElements getValidatedElements() {
146+
return validatedElements;
147+
}
148+
149+
@Override
150+
public JCodeModel getCodeModel() {
151+
return processHolder.codeModel();
152+
}
153+
154+
@Override
155+
public JClass getJClass(String fullyQualifiedName) {
156+
return processHolder.refClass(fullyQualifiedName);
157+
}
158+
159+
@Override
160+
public JClass getJClass(Class<?> clazz) {
161+
return processHolder.refClass(clazz);
162+
}
163+
164+
@Override
165+
public JDefinedClass getDefinedClass(String fullyQualifiedName) {
166+
return processHolder.definedClass(fullyQualifiedName);
167+
}
168+
169+
@Override
170+
public GeneratedClassHolder getGeneratedClassHolder(Element element) {
171+
return processHolder.getGeneratedClassHolder(element);
172+
}
173+
174+
@Override
175+
public ProcessHolder.Classes getClasses() {
176+
return processHolder.classes();
177+
}
178+
179+
@Override
180+
public List<Class<? extends Annotation>> getGeneratingAnnotations() {
181+
return annotationHandlers.getGeneratingAnnotations();
182+
}
183+
184+
@Override
185+
public boolean isAndroidAnnotation(String annotationQualifiedName) {
186+
return getSupportedAnnotationTypes().contains(annotationQualifiedName);
187+
}
188+
189+
@Override
190+
public List<AndroidAnnotationsPlugin> getPlugins() {
191+
return plugins;
192+
}
193+
}

0 commit comments

Comments
 (0)