Skip to content

Commit 4b0abd6

Browse files
committed
Merge pull request androidannotations#678 from tbruyelle/674_WarningOnNullRootContext
Log a warning when a @rootcontext field isn't populated
2 parents c46b0e7 + 0e1ae8f commit 4b0abd6

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/RootContextProcessor.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package org.androidannotations.processing;
1717

1818
import static com.sun.codemodel.JExpr.cast;
19+
import static com.sun.codemodel.JExpr.lit;
1920
import static com.sun.codemodel.JExpr.ref;
2021
import static org.androidannotations.helper.CanonicalNameConstants.CONTEXT;
2122

@@ -27,6 +28,9 @@
2728
import com.sun.codemodel.JBlock;
2829
import com.sun.codemodel.JClass;
2930
import com.sun.codemodel.JCodeModel;
31+
import com.sun.codemodel.JConditional;
32+
import com.sun.codemodel.JExpression;
33+
import com.sun.codemodel.JInvocation;
3034

3135
public class RootContextProcessor implements DecoratingElementProcessor {
3236

@@ -49,10 +53,16 @@ public void process(Element element, JCodeModel codeModel, EBeanHolder holder) {
4953
body.assign(ref(fieldName), holder.contextRef);
5054
} else {
5155
JClass extendingContextClass = holder.refClass(typeQualifiedName);
52-
body._if(holder.contextRef._instanceof(extendingContextClass)) //
53-
._then() //
56+
JConditional cond = body._if(holder.contextRef._instanceof(extendingContextClass));
57+
cond._then() //
5458
.assign(ref(fieldName), cast(extendingContextClass, holder.contextRef));
59+
60+
JInvocation warningInvoke = holder.classes().LOG.staticInvoke("w");
61+
warningInvoke.arg(holder.generatedClass.name());
62+
JExpression expr = lit("Due to Context class ").plus(holder.contextRef.invoke("getClass").invoke("getSimpleName")).plus(lit(", the @RootContext " + extendingContextClass.name() + " won't be populated"));
63+
warningInvoke.arg(expr);
64+
cond._else() //
65+
.add(warningInvoke);
5566
}
5667
}
57-
5868
}

0 commit comments

Comments
 (0)