diff options
author | Andy Clement <aclement@pivotal.io> | 2015-08-06 13:53:56 -0700 |
---|---|---|
committer | Andy Clement <aclement@pivotal.io> | 2015-08-06 13:53:56 -0700 |
commit | 7a61a0d50d7371ef0a8e9904e8da7e93922fe8e4 (patch) | |
tree | a93912af3c6f420f8d6e3de50a215f94d4796585 /org.aspectj.ajdt.core/src/org | |
parent | 9f19c3d57acfe94b07fcb060abef1ad0e63fb4eb (diff) | |
download | aspectj-7a61a0d50d7371ef0a8e9904e8da7e93922fe8e4.tar.gz aspectj-7a61a0d50d7371ef0a8e9904e8da7e93922fe8e4.zip |
Support annotation conversion for class annotation values
Issue: https://bugs.eclipse.org/bugs/show_bug.cgi?id=474165
Diffstat (limited to 'org.aspectj.ajdt.core/src/org')
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java index efd2a152a..47c56f939 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java @@ -14,6 +14,7 @@ package org.aspectj.ajdt.internal.compiler.lookup; import org.aspectj.apache.bcel.classfile.annotation.ElementValue; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.Annotation; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ArrayInitializer; +import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.MarkerAnnotation; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.MemberValuePair; @@ -33,6 +34,7 @@ import org.aspectj.weaver.AnnotationAJ; import org.aspectj.weaver.AnnotationNameValuePair; import org.aspectj.weaver.AnnotationValue; import org.aspectj.weaver.ArrayAnnotationValue; +import org.aspectj.weaver.ClassAnnotationValue; import org.aspectj.weaver.EnumAnnotationValue; import org.aspectj.weaver.ResolvedType; import org.aspectj.weaver.SimpleAnnotationValue; @@ -218,24 +220,14 @@ public class EclipseAnnotationConvertor { } } else { // class type + if (defaultValue instanceof ClassLiteralAccess) { + ClassLiteralAccess cla = (ClassLiteralAccess)defaultValue; + ClassAnnotationValue cav = new ClassAnnotationValue(new String(cla.targetType.signature())); + return cav; + } throw new MissingImplementationException( "Please raise an AspectJ bug. AspectJ does not know how to convert this annotation value [" + defaultValue + "]"); - // if (contentsOffset + 3 >= this.contents.length) { - // resizeContents(3); - // } - // contents[contentsOffset++] = (byte) 'c'; - // if (defaultValue instanceof ClassLiteralAccess) { - // ClassLiteralAccess classLiteralAccess = (ClassLiteralAccess) - // defaultValue; - // final int classInfoIndex = - // constantPool.literalIndex(classLiteralAccess - // .targetType.signature()); - // contents[contentsOffset++] = (byte) (classInfoIndex >> 8); - // contents[contentsOffset++] = (byte) classInfoIndex; - // } else { - // contentsOffset = attributeOffset; - // } } } else { throw new MissingImplementationException( |