- Revision
- 1397
- Author
- rfscholte
- Date
- 2011-10-10 16:29:22 -0500 (Mon, 10 Oct 2011)
Log Message
Try to use JavaAnnotatedElement instead of AbstractJavaModel.
Modified Paths
- trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/DefaultAnnotationTransformer.java
- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/FieldRef.java
- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/impl/DefaultJavaAnnotation.java
Diff
Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/DefaultAnnotationTransformer.java (1396 => 1397)
--- trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/DefaultAnnotationTransformer.java 2011-10-10 19:54:26 UTC (rev 1396) +++ trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/DefaultAnnotationTransformer.java 2011-10-10 21:29:22 UTC (rev 1397) @@ -23,6 +23,8 @@ import java.util.List; import java.util.Map; +import com.thoughtworks.qdox.model.JavaAnnotatedElement; +import com.thoughtworks.qdox.model.JavaClassParent; import com.thoughtworks.qdox.model.Type; import com.thoughtworks.qdox.model._expression_.Add; import com.thoughtworks.qdox.model._expression_.And; @@ -97,7 +99,7 @@ private AbstractBaseJavaEntity parent; public DefaultAnnotationTransformer(AbstractBaseJavaEntity parent) { - this.parent = parent; + this.parent = (AbstractBaseJavaEntity) parent; } /* (non-Javadoc) @@ -108,7 +110,7 @@ for(Map.Entry<String, ElemValueDef> annoVal : annoDef.getArgs().entrySet()) { annotation.setProperty(annoVal.getKey(), annoVal.getValue().transform(this)); } - annotation.setContext(parent); + annotation.setContext((JavaAnnotatedElement) parent); return annotation; } @@ -116,7 +118,7 @@ if(typeDef == null) { return null; } - return TypeAssembler.createUnresolved(typeDef, dimensions, parent.getParentClass() != null ? parent.getParentClass() : parent.getSource()); + return TypeAssembler.createUnresolved(typeDef, dimensions, parent.getParentClass() != null ? parent.getParentClass() : parent.getSource() ); } public AnnotationValue transform(ElemValueListDef elemValueListDef) { @@ -346,7 +348,7 @@ FieldRef result; String name = annotationFieldRef.getName(); result = new FieldRef(name); - result.setContext(parent); + result.setContext((JavaAnnotatedElement) parent); return result; }
Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/FieldRef.java (1396 => 1397)
--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/FieldRef.java 2011-10-10 19:54:26 UTC (rev 1396) +++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/FieldRef.java 2011-10-10 21:29:22 UTC (rev 1397) @@ -21,11 +21,14 @@ import java.util.StringTokenizer; +import com.thoughtworks.qdox.model.JavaAnnotatedElement; import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.JavaClassParent; import com.thoughtworks.qdox.model.JavaField; +import com.thoughtworks.qdox.model.JavaMember; +import com.thoughtworks.qdox.model.JavaPackage; +import com.thoughtworks.qdox.model.JavaParameter; import com.thoughtworks.qdox.model.Type; -import com.thoughtworks.qdox.model.impl.AbstractBaseJavaEntity; public class FieldRef implements AnnotationValue { @@ -33,7 +36,7 @@ private final String name; - private AbstractBaseJavaEntity context; + private JavaAnnotatedElement context; private JavaField field; @@ -86,7 +89,7 @@ return getName(); } - public void setContext( AbstractBaseJavaEntity context ) { + public void setContext( JavaAnnotatedElement context ) { this.context = context; } @@ -125,29 +128,37 @@ return field; } - public JavaField getField() { - if( fieldIndex < 0 ) { - if( context.getParentClass() != null ) { - JavaClass cls = context.getParentClass(); - field = resolveField( cls, 0, parts.length -1 ); + public JavaField getField() + { + if ( fieldIndex < 0 ) + { + JavaClass declaringClass = getDeclaringClass(); + if ( declaringClass != null ) + { + field = resolveField( declaringClass, 0, parts.length - 1 ); fieldIndex = 0; } - if( field == null ) { - JavaClassParent classParent = context.getParentClass(); + if ( field == null ) + { + JavaClass baseClass = declaringClass; - //assume context is a JavaClass itself - if(classParent == null) { - classParent = (JavaClass) context; + // assume context is a JavaClass itself + if ( declaringClass == null ) + { + baseClass = (JavaClass) context; } - - for( int i = 0; i < parts.length - 1; ++i ) { + + for ( int i = 0; i < parts.length - 1; ++i ) + { String className = getNamePrefix( i ); - String typeName = classParent.resolveType( className ); + String typeName = baseClass.resolveType( className ); - if( typeName != null ) { - JavaClass javaClass = Type.createUnresolved( typeName, 0, classParent ); - if( javaClass != null ) { + if ( typeName != null ) + { + JavaClass javaClass = Type.createUnresolved( typeName, 0, baseClass ); + if ( javaClass != null ) + { fieldIndex = i + 1; field = resolveField( javaClass, i + 1, parts.length - 1 ); break; @@ -156,7 +167,28 @@ } } } - return field; } + + private JavaClass getDeclaringClass() + { + JavaClass result = null; + if ( context instanceof JavaMember ) + { + result = ( (JavaMember) context ).getDeclaringClass(); + } + else if ( context instanceof JavaClass ) + { + result = ( (JavaClass) context ).getDeclaringClass(); + } + else if ( context instanceof JavaParameter ) + { + result = ( (JavaParameter) context ).getParentClass(); + } + else if ( context instanceof JavaPackage ) + { + // + } + return result; + } }
Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/impl/DefaultJavaAnnotation.java (1396 => 1397)
--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/impl/DefaultJavaAnnotation.java 2011-10-10 19:54:26 UTC (rev 1396) +++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/impl/DefaultJavaAnnotation.java 2011-10-10 21:29:22 UTC (rev 1397) @@ -25,6 +25,7 @@ import java.util.Map; import java.util.Map.Entry; +import com.thoughtworks.qdox.model.JavaAnnotatedElement; import com.thoughtworks.qdox.model.JavaAnnotation; import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.Type; @@ -53,10 +54,10 @@ */ private final Map<String, Object> namedParameters = new LinkedHashMap<String, Object>(); - private AbstractJavaModel context; + private JavaAnnotatedElement context; public DefaultJavaAnnotation(JavaClass type, - AbstractJavaModel context, + JavaAnnotatedElement context, Map<String, Object> namedParameters, int lineNumber) { @@ -107,7 +108,7 @@ return namedParameters; } - public final AbstractJavaModel getContext() { + public final JavaAnnotatedElement getContext() { return context; } @@ -137,7 +138,7 @@ return properties.get( name ); } - public void setContext( AbstractJavaModel context ) { + public void setContext( JavaAnnotatedElement context ) { this.context = context; }
To unsubscribe from this list please visit:
