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

Commit

Permalink
Add information on the type of class currently processed
Browse files Browse the repository at this point in the history
  • Loading branch information
DayS committed Feb 8, 2013
1 parent 93c00bf commit 46ed0a6
Show file tree
Hide file tree
Showing 13 changed files with 41 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import org.androidannotations.helper.AnnotationHelper;
import org.androidannotations.helper.CanonicalNameConstants;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;
import org.androidannotations.rclass.IRClass;
import org.androidannotations.rclass.IRClass.Res;

Expand Down Expand Up @@ -101,7 +102,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo

JDefinedClass generatedClass = codeModel._class(modifiers, subActivityQualifiedName, ClassType.CLASS);

EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.ACTIVITY);

JClass annotatedActivity = codeModel.directClass(annotatedActivityQualifiedName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

import org.androidannotations.annotations.EApplication;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;

import com.sun.codemodel.ClassType;
import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
Expand All @@ -52,7 +54,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo
String generatedComponentQualifiedName = annotatedComponentQualifiedName + ModelConstants.GENERATION_SUFFIX;

JDefinedClass generatedClass = codeModel._class(PUBLIC | FINAL, generatedComponentQualifiedName, ClassType.CLASS);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.APPLICATION);

JClass annotatedComponent = codeModel.directClass(annotatedComponentQualifiedName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@

public class EBeanHolder {

public static enum GeneratedClassType {
ACTIVITY, APPLICATION, BEAN, FRAGMENT, PROVIDER, RECEIVER, SERVICE, VIEW_GROUP, VIEW, REST, SHARED_PREF
}

public final GeneratedClassType classType;
public final JDefinedClass generatedClass;
/**
* Only defined on activities
Expand Down Expand Up @@ -124,10 +129,11 @@ public class EBeanHolder {
private final EBeansHolder eBeansHolder;
public final Class<? extends Annotation> eBeanAnnotation;

public EBeanHolder(EBeansHolder eBeansHolder, Class<? extends Annotation> eBeanAnnotation, JDefinedClass generatedClass) {
public EBeanHolder(EBeansHolder eBeansHolder, Class<? extends Annotation> eBeanAnnotation, JDefinedClass generatedClass, GeneratedClassType classType) {
this.eBeansHolder = eBeansHolder;
this.eBeanAnnotation = eBeanAnnotation;
this.generatedClass = generatedClass;
this.classType = classType;
}

public Classes classes() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@

import org.androidannotations.annotations.EBean;
import org.androidannotations.helper.APTCodeModelHelper;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;
import org.androidannotations.processing.EBeansHolder.Classes;

import com.sun.codemodel.ClassType;
Expand Down Expand Up @@ -65,7 +66,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo

JDefinedClass generatedClass = codeModel._class(PUBLIC | FINAL, generatedBeanQualifiedName, ClassType.CLASS);

EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.BEAN);

JClass eBeanClass = codeModel.directClass(eBeanQualifiedName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import javax.lang.model.element.Element;

import org.androidannotations.helper.CanonicalNameConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;

import com.sun.codemodel.JClass;
import com.sun.codemodel.JClassAlreadyExistsException;
Expand Down Expand Up @@ -165,13 +166,13 @@ private void preloadJavaLangClasses() {
loadedClasses.put(Object.class.getName(), refClass(Object.class));
}

public EBeanHolder create(Element element, Class<? extends Annotation> eBeanAnnotation, JDefinedClass generatedClass) {
public EBeanHolder create(Element element, Class<? extends Annotation> eBeanAnnotation, JDefinedClass generatedClass, GeneratedClassType classType) {

String qualifiedName = generatedClass.fullName();

originatingElements.add(qualifiedName, element);

EBeanHolder activityHolder = new EBeanHolder(this, eBeanAnnotation, generatedClass);
EBeanHolder activityHolder = new EBeanHolder(this, eBeanAnnotation, generatedClass, classType);
eBeanHolders.put(element, activityHolder);
return activityHolder;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
*/
package org.androidannotations.processing;

import static org.androidannotations.helper.ModelConstants.GENERATION_SUFFIX;
import static com.sun.codemodel.JExpr.FALSE;
import static com.sun.codemodel.JExpr._new;
import static com.sun.codemodel.JExpr._null;
Expand All @@ -25,6 +24,7 @@
import static com.sun.codemodel.JMod.PRIVATE;
import static com.sun.codemodel.JMod.PUBLIC;
import static com.sun.codemodel.JMod.STATIC;
import static org.androidannotations.helper.ModelConstants.GENERATION_SUFFIX;

import java.lang.annotation.Annotation;

Expand All @@ -34,9 +34,11 @@

import org.androidannotations.annotations.EFragment;
import org.androidannotations.helper.IdAnnotationHelper;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;
import org.androidannotations.processing.EBeansHolder.Classes;
import org.androidannotations.rclass.IRClass;
import org.androidannotations.rclass.IRClass.Res;

import com.sun.codemodel.ClassType;
import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
Expand Down Expand Up @@ -72,7 +74,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo

JDefinedClass generatedClass = codeModel._class(PUBLIC | FINAL, generatedBeanQualifiedName, ClassType.CLASS);

EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.FRAGMENT);

JClass eBeanClass = codeModel.directClass(beanQualifiedName);

Expand Down Expand Up @@ -142,11 +144,10 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo
JBlock onViewCreatedBody = onViewCreated.body();

onViewCreatedBody.invoke(_super(), onViewCreated).arg(view).arg(savedInstanceState);

onViewCreatedBody.invoke(holder.afterSetContentView);
}


{
// findViewById

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

import org.androidannotations.annotations.EProvider;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;

import com.sun.codemodel.ClassType;
import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
Expand All @@ -53,7 +55,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo

JDefinedClass generatedClass = codeModel._class(PUBLIC | FINAL, generatedComponentQualifiedName, ClassType.CLASS);

EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.PROVIDER);

JClass annotatedComponent = codeModel.directClass(annotatedComponentQualifiedName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@

import org.androidannotations.annotations.EReceiver;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;
import org.androidannotations.processing.EBeansHolder.Classes;

import com.sun.codemodel.ClassType;
import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
Expand Down Expand Up @@ -55,7 +57,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo

JDefinedClass generatedClass = codeModel._class(PUBLIC | FINAL, generatedComponentQualifiedName, ClassType.CLASS);

EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.RECEIVER);

JClass annotatedComponent = codeModel.directClass(annotatedComponentQualifiedName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
import org.androidannotations.annotations.EService;
import org.androidannotations.helper.APTCodeModelHelper;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;

import com.sun.codemodel.ClassType;
import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
Expand Down Expand Up @@ -60,7 +62,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo

JDefinedClass generatedClass = codeModel._class(PUBLIC | FINAL, generatedComponentQualifiedName, ClassType.CLASS);

EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.SERVICE);

JClass annotatedComponent = codeModel.directClass(annotatedComponentQualifiedName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,11 @@
import org.androidannotations.helper.APTCodeModelHelper;
import org.androidannotations.helper.IdAnnotationHelper;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;
import org.androidannotations.processing.EBeansHolder.Classes;
import org.androidannotations.rclass.IRClass;
import org.androidannotations.rclass.IRClass.Res;

import com.sun.codemodel.ClassType;
import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
Expand Down Expand Up @@ -95,7 +97,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo

JDefinedClass generatedClass = codeModel._class(modifiers, generatedBeanQualifiedName, ClassType.CLASS);

EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.VIEW_GROUP);

JClass eBeanClass = codeModel.directClass(eBeanQualifiedName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
import org.androidannotations.annotations.EView;
import org.androidannotations.helper.APTCodeModelHelper;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;
import org.androidannotations.processing.EBeansHolder.Classes;

import com.sun.codemodel.ClassType;
import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
Expand Down Expand Up @@ -85,7 +87,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo
}

JDefinedClass generatedClass = codeModel._class(modifiers, generatedBeanQualifiedName, ClassType.CLASS);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass);
EBeanHolder holder = eBeansHolder.create(element, getTarget(), generatedClass, GeneratedClassType.VIEW);

JClass eBeanClass = codeModel.directClass(eBeanQualifiedName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
import org.androidannotations.api.sharedpreferences.StringPrefField;
import org.androidannotations.helper.CanonicalNameConstants;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;

import com.sun.codemodel.ClassType;
import com.sun.codemodel.JBlock;
Expand Down Expand Up @@ -106,7 +107,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo

String helperQualifiedName = interfaceQualifiedName + ModelConstants.GENERATION_SUFFIX;
JDefinedClass helperClass = codeModel._class(JMod.PUBLIC | JMod.FINAL, helperQualifiedName, ClassType.CLASS);
eBeansHolder.create(typeElement, getTarget(), helperClass);
eBeansHolder.create(typeElement, getTarget(), helperClass, GeneratedClassType.SHARED_PREF);

helperClass._extends(SharedPreferencesHelper.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import org.androidannotations.annotations.rest.Rest;
import org.androidannotations.helper.AnnotationHelper;
import org.androidannotations.helper.ModelConstants;
import org.androidannotations.processing.EBeanHolder.GeneratedClassType;
import org.androidannotations.processing.EBeansHolder;
import org.androidannotations.processing.GeneratingElementProcessor;

Expand Down Expand Up @@ -76,7 +77,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo
String implementationName = interfaceName + ModelConstants.GENERATION_SUFFIX;

holder.restImplementationClass = codeModel._class(JMod.PUBLIC, implementationName, ClassType.CLASS);
eBeansHolder.create(element, getTarget(), holder.restImplementationClass);
eBeansHolder.create(element, getTarget(), holder.restImplementationClass, GeneratedClassType.REST);

JClass interfaceClass = eBeansHolder.refClass(interfaceName);
holder.restImplementationClass._implements(interfaceClass);
Expand Down

0 comments on commit 46ed0a6

Please sign in to comment.