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

Commit 70b223f

Browse files
committed
Merge pull request #213 from excilys/188_Extra_CoC
@extra Configuration over Convention. Fixes #188.
2 parents 0b886d7 + ba03549 commit 70b223f

48 files changed

Lines changed: 601 additions & 398 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/annotations/Extra.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@
3333
@Retention(RetentionPolicy.SOURCE)
3434
@Target(ElementType.FIELD)
3535
public @interface Extra {
36-
String value();
36+
37+
String value() default "";
3738
}

‎AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/APTCodeModelHelper.java‎

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import javax.lang.model.type.TypeMirror;
3333

3434
import com.googlecode.androidannotations.processing.EBeanHolder;
35+
import com.googlecode.androidannotations.processing.EBeansHolder.Classes;
3536
import com.sun.codemodel.JBlock;
3637
import com.sun.codemodel.JCatchBlock;
3738
import com.sun.codemodel.JClass;
@@ -90,7 +91,7 @@ public Parameter(String name, JClass jClass) {
9091
this.jClass = jClass;
9192
}
9293
}
93-
94+
9495
public JMethod overrideAnnotatedMethod(ExecutableElement executableElement, EBeanHolder holder) {
9596

9697
String methodName = executableElement.getSimpleName().toString();
@@ -103,13 +104,13 @@ public JMethod overrideAnnotatedMethod(ExecutableElement executableElement, EBea
103104
JClass parameterClass = typeMirrorToJClass(parameter.asType(), holder);
104105
parameters.add(new Parameter(parameterName, parameterClass));
105106
}
106-
107+
107108
JMethod existingMethod = findAlreadyGeneratedMethod(holder.eBean, methodName, parameters);
108-
109+
109110
if (existingMethod != null) {
110111
return existingMethod;
111112
}
112-
113+
113114
JMethod method = holder.eBean.method(JMod.PUBLIC, returnType, methodName);
114115
method.annotate(Override.class);
115116

@@ -125,7 +126,7 @@ public JMethod overrideAnnotatedMethod(ExecutableElement executableElement, EBea
125126
JClass thrownType = typeMirrorToJClass(superThrownType, holder);
126127
method._throws(thrownType);
127128
}
128-
129+
129130
callSuperMethod(method, holder, method.body());
130131

131132
return method;
@@ -163,7 +164,7 @@ public void callSuperMethod(JMethod superMethod, EBeanHolder holder, JBlock call
163164
callBlock._return(superCall);
164165
}
165166
}
166-
167+
167168
public JBlock removeBody(JMethod method) {
168169
JBlock body = method.body();
169170
try {
@@ -173,16 +174,16 @@ public JBlock removeBody(JMethod method) {
173174
} catch (Exception e) {
174175
throw new RuntimeException(e);
175176
}
176-
177+
177178
JBlock clonedBody = new JBlock(false, false);
178-
179-
for(Object statement : body.getContents()) {
179+
180+
for (Object statement : body.getContents()) {
180181
clonedBody.add((JStatement) statement);
181182
}
182-
183+
183184
return clonedBody;
184185
}
185-
186+
186187
public String getIdStringFromIdFieldRef(JFieldRef idRef) {
187188
try {
188189
Field nameField = JFieldRef.class.getDeclaredField("name");
@@ -208,7 +209,11 @@ public String getIdStringFromIdFieldRef(JFieldRef idRef) {
208209
throw new IllegalStateException("Unable to extract target name from JFieldRef");
209210
}
210211

211-
public JDefinedClass createDelegatingAnonymousRunnableClass(JCodeModel codeModel, EBeanHolder holder, JMethod delegatedMethod) {
212+
public JDefinedClass createDelegatingAnonymousRunnableClass(EBeanHolder holder, JMethod delegatedMethod) {
213+
214+
JCodeModel codeModel = holder.codeModel();
215+
Classes classes = holder.classes();
216+
212217
JDefinedClass anonymousRunnableClass;
213218
JBlock previousMethodBody = removeBody(delegatedMethod);
214219

@@ -222,12 +227,10 @@ public JDefinedClass createDelegatingAnonymousRunnableClass(JCodeModel codeModel
222227

223228
runTry.body().add(previousMethodBody);
224229

225-
JCatchBlock runCatch = runTry._catch(holder.refClass(RuntimeException.class));
230+
JCatchBlock runCatch = runTry._catch(classes.RUNTIME_EXCEPTION);
226231
JVar exceptionParam = runCatch.param("e");
227232

228-
JClass logClass = holder.refClass("android.util.Log");
229-
230-
JInvocation errorInvoke = logClass.staticInvoke("e");
233+
JInvocation errorInvoke = classes.LOG.staticInvoke("e");
231234

232235
errorInvoke.arg(holder.eBean.name());
233236
errorInvoke.arg("A runtime exception was thrown while executing code in a runnable");
@@ -236,18 +239,16 @@ public JDefinedClass createDelegatingAnonymousRunnableClass(JCodeModel codeModel
236239
runCatch.body().add(errorInvoke);
237240
return anonymousRunnableClass;
238241
}
239-
242+
240243
public JVar castContextToActivity(EBeanHolder holder, JBlock ifActivityBody) {
241-
JClass activityClass = holder.refClass("android.app.Activity");
244+
JClass activityClass = holder.classes().ACTIVITY;
242245
return ifActivityBody.decl(activityClass, "activity", cast(activityClass, holder.contextRef));
243246
}
244247

245248
public JBlock ifContextInstanceOfActivity(EBeanHolder holder, JBlock methodBody) {
246-
JClass activityClass = holder.refClass("android.app.Activity");
247-
return methodBody._if(holder.contextRef._instanceof(activityClass))._then();
249+
return methodBody._if(holder.contextRef._instanceof(holder.classes().ACTIVITY))._then();
248250
}
249251

250-
251252
public void copyConstructorsAndAddStaticEViewBuilders(Element element, JCodeModel codeModel, JClass eBeanClass, EBeanHolder holder, JMethod setContentViewMethod) {
252253
List<ExecutableElement> constructors = new ArrayList<ExecutableElement>();
253254
for (Element e : element.getEnclosedElements()) {
@@ -261,7 +262,7 @@ public void copyConstructorsAndAddStaticEViewBuilders(Element element, JCodeMode
261262
JMethod staticHelper = holder.eBean.method(PUBLIC | STATIC, eBeanClass, "build");
262263
JBlock body = copyConstructor.body();
263264
JInvocation superCall = body.invoke("super");
264-
JInvocation newInvocation = JExpr._new(holder.eBean);
265+
JInvocation newInvocation = JExpr._new(holder.eBean);
265266
for (VariableElement param : userConstructor.getParameters()) {
266267
String paramName = param.getSimpleName().toString();
267268
String paramType = param.asType().toString();
@@ -277,7 +278,7 @@ public void copyConstructorsAndAddStaticEViewBuilders(Element element, JCodeMode
277278
body.invoke(holder.init);
278279
}
279280
}
280-
281+
281282
public JVar findParameterByName(JMethod method, String name) {
282283
for (JVar parameter : method.params()) {
283284
if (parameter.name().equals(name)) {
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
/**
2+
* Copyright (C) 2010-2011 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 com.googlecode.androidannotations.helper;
17+
18+
import java.net.URI;
19+
import java.util.Collections;
20+
import java.util.Set;
21+
22+
public final class CanonicalNameConstants {
23+
24+
/*
25+
* Java classes
26+
*/
27+
public static final String URI = URI.class.getCanonicalName();
28+
public static final String SET = Set.class.getCanonicalName();
29+
public static final String COLLECTIONS = Collections.class.getCanonicalName();
30+
public static final String STRING = String.class.getCanonicalName();
31+
public static final String CHAR_SEQUENCE = CharSequence.class.getCanonicalName();
32+
33+
/*
34+
* Android classes
35+
*/
36+
public static final String LOG = "android.util.Log";
37+
public static final String PARCELABLE = "android.os.Parcelable";
38+
public static final String INTENT = "android.content.Intent";
39+
public static final String BUNDLE = "android.os.Bundle";
40+
public static final String APPLICATION = "android.app.Application";
41+
public static final String ACTIVITY = "android.app.Activity";
42+
public static final String EDITABLE = "android.text.Editable";
43+
public static final String TEXT_WATCHER = "android.text.TextWatcher";
44+
public static final String TEXT_VIEW = "android.widget.TextView";
45+
public static final String VIEW = "android.view.View";
46+
public static final String VIEW_ON_CLICK_LISTENER = "android.view.View.OnClickListener";
47+
public static final String VIEW_GROUP_LAYOUT_PARAMS = "android.view.ViewGroup.LayoutParams";
48+
public static final String VIEW_GROUP = "android.view.ViewGroup";
49+
public static final String CONTEXT = "android.content.Context";
50+
public static final String KEY_EVENT = "android.view.KeyEvent";
51+
public static final String LAYOUT_INFLATER = "android.view.LayoutInflater";
52+
public static final String FRAGMENT_ACTIVITY = "android.support.v4.app.FragmentActivity";
53+
public static final String FRAGMENT = "android.app.Fragment";
54+
public static final String SUPPORT_V4_FRAGMENT = "android.support.v4.app.Fragment";
55+
public static final String HTML = "android.text.Html";
56+
public static final String WINDOW_MANAGER_LAYOUT_PARAMS = "android.view.WindowManager.LayoutParams";
57+
public static final String ADAPTER_VIEW = "android.widget.AdapterView";
58+
public static final String ON_ITEM_CLICK_LISTENER = "android.widget.AdapterView.OnItemClickListener";
59+
public static final String ON_ITEM_LONG_CLICK_LISTENER = "android.widget.AdapterView.OnItemLongClickListener";
60+
public static final String ON_ITEM_SELECTED_LISTENER = "android.widget.AdapterView.OnItemSelectedListener";
61+
public static final String ON_LONG_CLICK_LISTENER = "android.view.View.OnLongClickListener";
62+
public static final String WINDOW = "android.view.Window";
63+
public static final String MENU_ITEM = "android.view.MenuItem";
64+
public static final String MENU_INFLATER = "android.view.MenuInflater";
65+
public static final String MENU = "android.view.Menu";
66+
public static final String ANIMATION = "android.view.animation.Animation";
67+
public static final String ANIMATION_UTILS = "android.view.animation.AnimationUtils";
68+
public static final String RESOURCES = "android.content.res.Resources";
69+
public static final String CONFIGURATION = "android.content.res.Configuration";
70+
public static final String MOTION_EVENT = "android.view.MotionEvent";
71+
public static final String ON_TOUCH_LISTENER = "android.view.View.OnTouchListener";
72+
public static final String HANDLER = "android.os.Handler";
73+
public static final String SERVICE = "android.app.Service";
74+
public static final String BROADCAST_RECEIVER = "android.content.BroadcastReceiver";
75+
public static final String CONTENT_PROVIDER = "android.content.ContentProvider";
76+
public static final String SQLITE_DATABASE = "android.database.sqlite.SQLiteDatabase";
77+
78+
/*
79+
* Sherlock classes
80+
*/
81+
public static final String SHERLOCK_MENU = "com.actionbarsherlock.view.Menu";
82+
public static final String SHERLOCK_MENU_ITEM = "com.actionbarsherlock.view.MenuItem";
83+
public static final String SHERLOCK_MENU_INFLATER = "com.actionbarsherlock.view.MenuInflater";
84+
85+
/*
86+
* SpringFramework classes
87+
*/
88+
public static final String RESPONSE_ENTITY = "org.springframework.http.ResponseEntity";
89+
public static final String HTTP_HEADERS = "org.springframework.http.HttpHeaders";
90+
public static final String MEDIA_TYPE = "org.springframework.http.MediaType";
91+
public static final String HTTP_METHOD = "org.springframework.http.HttpMethod";
92+
public static final String HTTP_ENTITY = "org.springframework.http.HttpEntity";
93+
public static final String REST_TEMPLATE = "org.springframework.web.client.RestTemplate";
94+
95+
/*
96+
* RoboGuice
97+
*/
98+
public static final String INJECTOR_PROVIDER = "roboguice.inject.InjectorProvider";
99+
public static final String INJECTOR = "com.google.inject.Injector";
100+
public static final String ON_RESTART_EVENT = "roboguice.activity.event.OnRestartEvent";
101+
public static final String ON_START_EVENT = "roboguice.activity.event.OnStartEvent";
102+
public static final String ON_RESUME_EVENT = "roboguice.activity.event.OnResumeEvent";
103+
public static final String ON_PAUSE_EVENT = "roboguice.activity.event.OnPauseEvent";
104+
public static final String ON_NEW_INTENT_EVENT = "roboguice.activity.event.OnNewIntentEvent";
105+
public static final String EVENT_MANAGER = "roboguice.event.EventManager";
106+
public static final String CONTEXT_SCOPE = "roboguice.inject.ContextScope";
107+
public static final String INJECT = "com.google.inject.Inject";
108+
public static final String ON_STOP_EVENT = "roboguice.activity.event.OnStopEvent";
109+
public static final String ON_DESTROY_EVENT = "roboguice.activity.event.OnDestroyEvent";
110+
public static final String ON_CONFIGURATION_CHANGED_EVENT = "roboguice.activity.event.OnConfigurationChangedEvent";
111+
public static final String ON_CONTENT_CHANGED_EVENT = "roboguice.activity.event.OnContentChangedEvent";
112+
public static final String ON_ACTIVITY_RESULT_EVENT = "roboguice.activity.event.OnActivityResultEvent";
113+
public static final String ON_CONTENT_VIEW_AVAILABLE_EVENT = "roboguice.activity.event.OnContentViewAvailableEvent";
114+
public static final String ON_CREATE_EVENT = "roboguice.activity.event.OnCreateEvent";
115+
116+
private CanonicalNameConstants() {
117+
}
118+
119+
}

‎AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/ProcessorConstants.java‎

Lines changed: 0 additions & 28 deletions
This file was deleted.

‎AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/helper/TextWatcherHelper.java‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,12 @@ public TextWatcherHolder getOrCreateListener(JCodeModel codeModel, EBeanHolder h
4141
TextWatcherHolder textWatcherHolder = holder.textWatchers.get(idRefString);
4242

4343
if (textWatcherHolder == null) {
44-
JClass editableClass = holder.refClass("android.text.Editable");
45-
JClass charSequenceClass = holder.refClass("java.lang.CharSequence");
44+
JClass charSequenceClass = holder.classes().CHAR_SEQUENCE;
4645

47-
JDefinedClass onTextChangeListenerClass = codeModel.anonymousClass(holder.refClass("android.text.TextWatcher"));
46+
JDefinedClass onTextChangeListenerClass = codeModel.anonymousClass(holder.classes().TEXT_WATCHER);
4847

4948
JMethod afterTextChangedMethod = onTextChangeListenerClass.method(JMod.PUBLIC, codeModel.VOID, "afterTextChanged");
50-
afterTextChangedMethod.param(editableClass, "s");
49+
afterTextChangedMethod.param(holder.classes().EDITABLE, "s");
5150
afterTextChangedMethod.annotate(Override.class);
5251

5352
JMethod onTextChangedMethod = onTextChangeListenerClass.method(JMod.PUBLIC, codeModel.VOID, "onTextChanged");
@@ -71,7 +70,7 @@ public TextWatcherHolder getOrCreateListener(JCodeModel codeModel, EBeanHolder h
7170
String viewParameterTypeString = viewParameterType.toString();
7271
viewClass = holder.refClass(viewParameterTypeString);
7372
} else {
74-
viewClass = holder.refClass("android.widget.TextView");
73+
viewClass = holder.classes().TEXT_VIEW;
7574
}
7675
JExpression findViewById = JExpr.cast(viewClass, JExpr.invoke("findViewById").arg(idRef));
7776

@@ -90,5 +89,4 @@ public TextWatcherHolder getOrCreateListener(JCodeModel codeModel, EBeanHolder h
9089
return textWatcherHolder;
9190
}
9291

93-
9492
}

0 commit comments

Comments
 (0)