Skip to content

Commit 4964b05

Browse files
committed
Moved experimental Res stuff to a specific package
1 parent fdef0bc commit 4964b05

6 files changed

Lines changed: 289 additions & 238 deletions

File tree

‎AndroidAnnotations/src/main/java/com/googlecode/androidannotations/AndroidAnnotationProcessor.java‎

Lines changed: 145 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
import com.googlecode.androidannotations.rclass.AndroidRClassFinder;
9191
import com.googlecode.androidannotations.rclass.CoumpoundRClass;
9292
import com.googlecode.androidannotations.rclass.IRClass;
93+
import com.googlecode.androidannotations.rclass.CompiledRClassFinder;
9394
import com.googlecode.androidannotations.rclass.RClassFinder;
9495
import com.googlecode.androidannotations.validation.BeforeCreateValidator;
9596
import com.googlecode.androidannotations.validation.ClickValidator;
@@ -110,176 +111,176 @@
110111
import com.sun.codemodel.JCodeModel;
111112

112113
@SupportedAnnotationClasses({ Enhance.class, //
113-
BeforeCreate.class, //
114-
RoboGuice.class, //
115-
ViewById.class, //
116-
Click.class, //
117-
LongClick.class, //
118-
ItemClick.class, //
119-
ItemLongClick.class, //
120-
Touch.class, //
121-
ItemSelect.class, //
122-
UiThreadDelayed.class, //
123-
UiThread.class, //
124-
Transactional.class, //
125-
Background.class, //
126-
Extra.class, //
127-
SystemService.class, //
128-
StringRes.class, //
129-
ColorRes.class, //
130-
AnimationRes.class, //
131-
BooleanRes.class, //
132-
ColorStateListRes.class, //
133-
DimensionRes.class, //
134-
DimensionPixelOffsetRes.class, //
135-
DimensionPixelSizeRes.class, //
136-
DrawableRes.class, //
137-
IntArrayRes.class, //
138-
IntegerRes.class, //
139-
LayoutRes.class, //
140-
MovieRes.class, //
141-
TextRes.class, //
142-
TextArrayRes.class, //
143-
StringArrayRes.class })
114+
BeforeCreate.class, //
115+
RoboGuice.class, //
116+
ViewById.class, //
117+
Click.class, //
118+
LongClick.class, //
119+
ItemClick.class, //
120+
ItemLongClick.class, //
121+
Touch.class, //
122+
ItemSelect.class, //
123+
UiThreadDelayed.class, //
124+
UiThread.class, //
125+
Transactional.class, //
126+
Background.class, //
127+
Extra.class, //
128+
SystemService.class, //
129+
StringRes.class, //
130+
ColorRes.class, //
131+
AnimationRes.class, //
132+
BooleanRes.class, //
133+
ColorStateListRes.class, //
134+
DimensionRes.class, //
135+
DimensionPixelOffsetRes.class, //
136+
DimensionPixelSizeRes.class, //
137+
DrawableRes.class, //
138+
IntArrayRes.class, //
139+
IntegerRes.class, //
140+
LayoutRes.class, //
141+
MovieRes.class, //
142+
TextRes.class, //
143+
TextArrayRes.class, //
144+
StringArrayRes.class })
144145
@SupportedSourceVersion(SourceVersion.RELEASE_6)
145146
public class AndroidAnnotationProcessor extends AnnotatedAbstractProcessor {
146147

147-
@Override
148-
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
149-
Messager messager = processingEnv.getMessager();
150-
messager.printMessage(Diagnostic.Kind.NOTE, "AndroidAnnotations compile time annotation processing");
151-
try {
152-
processThrowing(annotations, roundEnv);
153-
} catch (Exception e) {
148+
@Override
149+
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
150+
Messager messager = processingEnv.getMessager();
151+
messager.printMessage(Diagnostic.Kind.NOTE, "AndroidAnnotations compile time annotation processing");
152+
try {
153+
processThrowing(annotations, roundEnv);
154+
} catch (Exception e) {
154155

155-
Throwable rootCause = e;
156-
while (rootCause.getCause() != null) {
157-
rootCause = rootCause.getCause();
158-
}
156+
Throwable rootCause = e;
157+
while (rootCause.getCause() != null) {
158+
rootCause = rootCause.getCause();
159+
}
159160

160-
StackTraceElement firstElement = e.getStackTrace()[0];
161-
StackTraceElement rootFirstElement = rootCause.getStackTrace()[0];
162-
String errorMessage = e.toString() + " " + firstElement.toString() + " root: " + rootCause.toString() + " " + rootFirstElement.toString();
161+
StackTraceElement firstElement = e.getStackTrace()[0];
162+
StackTraceElement rootFirstElement = rootCause.getStackTrace()[0];
163+
String errorMessage = e.toString() + " " + firstElement.toString() + " root: " + rootCause.toString() + " " + rootFirstElement.toString();
163164

164-
messager.printMessage(Diagnostic.Kind.ERROR, "Unexpected annotation processing exception: " + errorMessage);
165-
e.printStackTrace();
165+
messager.printMessage(Diagnostic.Kind.ERROR, "Unexpected annotation processing exception: " + errorMessage);
166+
e.printStackTrace();
166167

167-
Element element = roundEnv.getElementsAnnotatedWith(annotations.iterator().next()).iterator().next();
168-
messager.printMessage(Diagnostic.Kind.ERROR, "Unexpected annotation processing exception (not related to this element, but otherwise it wouldn't show up in eclipse) : " + errorMessage, element);
169-
}
168+
Element element = roundEnv.getElementsAnnotatedWith(annotations.iterator().next()).iterator().next();
169+
messager.printMessage(Diagnostic.Kind.ERROR, "Unexpected annotation processing exception (not related to this element, but otherwise it wouldn't show up in eclipse) : " + errorMessage, element);
170+
}
170171

171-
return false;
172-
}
172+
return false;
173+
}
173174

174-
private void processThrowing(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) throws IOException {
175-
AnnotationElementsHolder extractedModel = extractAnnotations(annotations, roundEnv);
175+
private void processThrowing(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) throws IOException {
176+
AnnotationElementsHolder extractedModel = extractAnnotations(annotations, roundEnv);
176177

177-
IRClass rClass = findAndroidRClass(extractedModel);
178+
IRClass rClass = findAndroidRClass(extractedModel);
178179

179-
AndroidSystemServices androidSystemServices = new AndroidSystemServices();
180+
AndroidSystemServices androidSystemServices = new AndroidSystemServices();
180181

181-
AnnotationElements validatedModel = validateAnnotations(extractedModel, rClass, androidSystemServices);
182+
AnnotationElements validatedModel = validateAnnotations(extractedModel, rClass, androidSystemServices);
182183

183-
JCodeModel codeModel = processAnnotationsToCodeModel(validatedModel, rClass, androidSystemServices);
184+
JCodeModel codeModel = processAnnotationsToCodeModel(validatedModel, rClass, androidSystemServices);
184185

185-
MetaModel stringModel = processAnnotationsToStringModel(validatedModel, rClass, androidSystemServices);
186+
MetaModel stringModel = processAnnotationsToStringModel(validatedModel, rClass, androidSystemServices);
186187

187-
generateStringModelSources(stringModel);
188-
generateCodeModelSources(codeModel);
189-
}
188+
generateStringModelSources(stringModel);
189+
generateCodeModelSources(codeModel);
190+
}
190191

191-
private AnnotationElementsHolder extractAnnotations(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
192-
ModelExtractor modelExtractor = new ModelExtractor();
193-
AnnotationElementsHolder extractedModel = modelExtractor.extract(annotations, roundEnv);
194-
return extractedModel;
195-
}
192+
private AnnotationElementsHolder extractAnnotations(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
193+
ModelExtractor modelExtractor = new ModelExtractor();
194+
AnnotationElementsHolder extractedModel = modelExtractor.extract(annotations, roundEnv);
195+
return extractedModel;
196+
}
196197

197-
private IRClass findAndroidRClass(AnnotationElementsHolder extractedModel) {
198-
RClassFinder rClassFinder = new RClassFinder(processingEnv);
199-
IRClass rClass = rClassFinder.findFromAnnotationElements(extractedModel);
198+
private IRClass findAndroidRClass(AnnotationElementsHolder extractedModel) throws IOException {
199+
RClassFinder rClassFinder = new CompiledRClassFinder(processingEnv);
200+
IRClass rClass = rClassFinder.find(extractedModel);
200201

201-
AndroidRClassFinder androidRClassFinder = new AndroidRClassFinder(processingEnv);
202+
AndroidRClassFinder androidRClassFinder = new AndroidRClassFinder(processingEnv);
202203

203-
IRClass androidRClass = androidRClassFinder.find();
204+
IRClass androidRClass = androidRClassFinder.find();
204205

205-
return new CoumpoundRClass(rClass, androidRClass);
206-
}
206+
return new CoumpoundRClass(rClass, androidRClass);
207+
}
207208

208-
private AnnotationElements validateAnnotations(AnnotationElementsHolder extractedModel, IRClass rClass, AndroidSystemServices androidSystemServices) {
209-
if (rClass != null) {
210-
ModelValidator modelValidator = buildModelValidator(rClass, androidSystemServices);
211-
return modelValidator.validate(extractedModel);
212-
} else {
213-
return EmptyAnnotationElements.INSTANCE;
214-
}
215-
}
209+
private AnnotationElements validateAnnotations(AnnotationElementsHolder extractedModel, IRClass rClass, AndroidSystemServices androidSystemServices) {
210+
if (rClass != null) {
211+
ModelValidator modelValidator = buildModelValidator(rClass, androidSystemServices);
212+
return modelValidator.validate(extractedModel);
213+
} else {
214+
return EmptyAnnotationElements.INSTANCE;
215+
}
216+
}
216217

217-
private ModelValidator buildModelValidator(IRClass rClass, AndroidSystemServices androidSystemServices) {
218-
ModelValidator modelValidator = new ModelValidator();
219-
modelValidator.register(new EnhanceValidator(processingEnv, rClass));
220-
modelValidator.register(new RoboGuiceValidator(processingEnv));
221-
modelValidator.register(new ViewByIdValidator(processingEnv, rClass));
222-
modelValidator.register(new ClickValidator(processingEnv, rClass));
223-
modelValidator.register(new LongClickValidator(processingEnv, rClass));
224-
modelValidator.register(new TouchValidator(processingEnv, rClass));
225-
modelValidator.register(new ItemClickValidator(processingEnv, rClass));
226-
modelValidator.register(new ItemSelectedValidator(processingEnv, rClass));
227-
modelValidator.register(new ItemLongClickValidator(processingEnv, rClass));
228-
for (AndroidRes androidRes : AndroidRes.values()) {
229-
modelValidator.register(new ResValidator(androidRes, processingEnv, rClass));
230-
}
231-
modelValidator.register(new RunnableValidator(UiThreadDelayed.class, processingEnv));
232-
modelValidator.register(new RunnableValidator(UiThread.class, processingEnv));
233-
modelValidator.register(new RunnableValidator(Background.class, processingEnv));
234-
modelValidator.register(new TransactionalValidator(processingEnv));
235-
modelValidator.register(new ExtraValidator(processingEnv));
236-
modelValidator.register(new SystemServiceValidator(processingEnv, androidSystemServices));
237-
modelValidator.register(new BeforeCreateValidator(processingEnv));
218+
private ModelValidator buildModelValidator(IRClass rClass, AndroidSystemServices androidSystemServices) {
219+
ModelValidator modelValidator = new ModelValidator();
220+
modelValidator.register(new EnhanceValidator(processingEnv, rClass));
221+
modelValidator.register(new RoboGuiceValidator(processingEnv));
222+
modelValidator.register(new ViewByIdValidator(processingEnv, rClass));
223+
modelValidator.register(new ClickValidator(processingEnv, rClass));
224+
modelValidator.register(new LongClickValidator(processingEnv, rClass));
225+
modelValidator.register(new TouchValidator(processingEnv, rClass));
226+
modelValidator.register(new ItemClickValidator(processingEnv, rClass));
227+
modelValidator.register(new ItemSelectedValidator(processingEnv, rClass));
228+
modelValidator.register(new ItemLongClickValidator(processingEnv, rClass));
229+
for (AndroidRes androidRes : AndroidRes.values()) {
230+
modelValidator.register(new ResValidator(androidRes, processingEnv, rClass));
231+
}
232+
modelValidator.register(new RunnableValidator(UiThreadDelayed.class, processingEnv));
233+
modelValidator.register(new RunnableValidator(UiThread.class, processingEnv));
234+
modelValidator.register(new RunnableValidator(Background.class, processingEnv));
235+
modelValidator.register(new TransactionalValidator(processingEnv));
236+
modelValidator.register(new ExtraValidator(processingEnv));
237+
modelValidator.register(new SystemServiceValidator(processingEnv, androidSystemServices));
238+
modelValidator.register(new BeforeCreateValidator(processingEnv));
238239

239-
return modelValidator;
240-
}
240+
return modelValidator;
241+
}
241242

242-
private JCodeModel processAnnotationsToCodeModel(AnnotationElements validatedModel, IRClass rClass, AndroidSystemServices androidSystemServices) {
243-
ModelProcessor modelProcessor = buildModelProcessor(rClass, androidSystemServices);
244-
return modelProcessor.processToCodeModel(validatedModel);
245-
}
243+
private JCodeModel processAnnotationsToCodeModel(AnnotationElements validatedModel, IRClass rClass, AndroidSystemServices androidSystemServices) {
244+
ModelProcessor modelProcessor = buildModelProcessor(rClass, androidSystemServices);
245+
return modelProcessor.processToCodeModel(validatedModel);
246+
}
246247

247-
private MetaModel processAnnotationsToStringModel(AnnotationElements validatedModel, IRClass rClass, AndroidSystemServices androidSystemServices) {
248-
ModelProcessor modelProcessor = buildModelProcessor(rClass, androidSystemServices);
249-
return modelProcessor.processToStringModel(validatedModel);
250-
}
248+
private MetaModel processAnnotationsToStringModel(AnnotationElements validatedModel, IRClass rClass, AndroidSystemServices androidSystemServices) {
249+
ModelProcessor modelProcessor = buildModelProcessor(rClass, androidSystemServices);
250+
return modelProcessor.processToStringModel(validatedModel);
251+
}
251252

252-
private ModelProcessor buildModelProcessor(IRClass rClass, AndroidSystemServices androidSystemServices) {
253-
ModelProcessor modelProcessor = new ModelProcessor();
254-
modelProcessor.register(new EnhanceProcessor(processingEnv, rClass));
255-
modelProcessor.register(new RoboGuiceProcessor());
256-
modelProcessor.register(new ViewByIdProcessor(rClass));
257-
modelProcessor.register(new ClickProcessor(rClass));
258-
modelProcessor.register(new LongClickProcessor(rClass));
259-
modelProcessor.register(new TouchProcessor(rClass));
260-
modelProcessor.register(new ItemClickProcessor(rClass));
261-
modelProcessor.register(new ItemSelectedProcessor(rClass));
262-
modelProcessor.register(new ItemLongClickProcessor(rClass));
263-
for (AndroidRes androidRes : AndroidRes.values()) {
264-
modelProcessor.register(new ResProcessor(androidRes, rClass));
265-
}
266-
modelProcessor.register(new UiThreadProcessor());
267-
modelProcessor.register(new UiThreadDelayedProcessor());
268-
modelProcessor.register(new BackgroundProcessor());
269-
modelProcessor.register(new TransactionalProcessor());
270-
modelProcessor.register(new ExtraProcessor());
271-
modelProcessor.register(new SystemServiceProcessor(androidSystemServices));
272-
modelProcessor.register(new BeforeCreateProcessor());
273-
return modelProcessor;
274-
}
253+
private ModelProcessor buildModelProcessor(IRClass rClass, AndroidSystemServices androidSystemServices) {
254+
ModelProcessor modelProcessor = new ModelProcessor();
255+
modelProcessor.register(new EnhanceProcessor(processingEnv, rClass));
256+
modelProcessor.register(new RoboGuiceProcessor());
257+
modelProcessor.register(new ViewByIdProcessor(rClass));
258+
modelProcessor.register(new ClickProcessor(rClass));
259+
modelProcessor.register(new LongClickProcessor(rClass));
260+
modelProcessor.register(new TouchProcessor(rClass));
261+
modelProcessor.register(new ItemClickProcessor(rClass));
262+
modelProcessor.register(new ItemSelectedProcessor(rClass));
263+
modelProcessor.register(new ItemLongClickProcessor(rClass));
264+
for (AndroidRes androidRes : AndroidRes.values()) {
265+
modelProcessor.register(new ResProcessor(androidRes, rClass));
266+
}
267+
modelProcessor.register(new UiThreadProcessor());
268+
modelProcessor.register(new UiThreadDelayedProcessor());
269+
modelProcessor.register(new BackgroundProcessor());
270+
modelProcessor.register(new TransactionalProcessor());
271+
modelProcessor.register(new ExtraProcessor());
272+
modelProcessor.register(new SystemServiceProcessor(androidSystemServices));
273+
modelProcessor.register(new BeforeCreateProcessor());
274+
return modelProcessor;
275+
}
275276

276-
private void generateStringModelSources(MetaModel model) throws IOException {
277-
StringModelGenerator modelGenerator = new StringModelGenerator(processingEnv.getFiler());
278-
modelGenerator.generate(model);
279-
}
277+
private void generateStringModelSources(MetaModel model) throws IOException {
278+
StringModelGenerator modelGenerator = new StringModelGenerator(processingEnv.getFiler());
279+
modelGenerator.generate(model);
280+
}
280281

281-
private void generateCodeModelSources(JCodeModel model) throws IOException {
282-
CodeModelGenerator modelGenerator = new CodeModelGenerator(processingEnv.getFiler());
283-
modelGenerator.generate(model);
284-
}
282+
private void generateCodeModelSources(JCodeModel model) throws IOException {
283+
CodeModelGenerator modelGenerator = new CodeModelGenerator(processingEnv.getFiler());
284+
modelGenerator.generate(model);
285+
}
285286
}

AndroidAnnotations/src/main/java/com/googlecode/androidannotations/rclass/FileSystemLayoutInnerClass.java renamed to AndroidAnnotations/src/main/java/com/googlecode/androidannotations/experimental/FileSystemLayoutInnerClass.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
package com.googlecode.androidannotations.rclass;
1+
package com.googlecode.androidannotations.experimental;
22

33
import java.io.File;
44
import java.io.IOException;
55
import java.util.HashMap;
66
import java.util.Map;
77

8+
import com.googlecode.androidannotations.rclass.IRInnerClass;
89
import com.sun.codemodel.JCodeModel;
910
import com.sun.codemodel.JFieldRef;
1011

AndroidAnnotations/src/main/java/com/googlecode/androidannotations/rclass/FileSystemRClass.java renamed to AndroidAnnotations/src/main/java/com/googlecode/androidannotations/experimental/FileSystemRClass.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* License for the specific language governing permissions and limitations under
1414
* the License.
1515
*/
16-
package com.googlecode.androidannotations.rclass;
16+
package com.googlecode.androidannotations.experimental;
1717

1818
import java.io.BufferedReader;
1919
import java.io.File;
@@ -22,6 +22,11 @@
2222
import java.util.HashMap;
2323
import java.util.Map;
2424

25+
import com.googlecode.androidannotations.rclass.IRClass;
26+
import com.googlecode.androidannotations.rclass.IRInnerClass;
27+
import com.googlecode.androidannotations.rclass.RInnerClass;
28+
import com.googlecode.androidannotations.rclass.IRClass.Res;
29+
2530
public class FileSystemRClass implements IRClass {
2631

2732
private final Map<String, RInnerClass> rClass = new HashMap<String, RInnerClass>();

0 commit comments

Comments
 (0)