aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core/src/org
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2015-08-06 13:53:56 -0700
committerAndy Clement <aclement@pivotal.io>2015-08-06 13:53:56 -0700
commit7a61a0d50d7371ef0a8e9904e8da7e93922fe8e4 (patch)
treea93912af3c6f420f8d6e3de50a215f94d4796585 /org.aspectj.ajdt.core/src/org
parent9f19c3d57acfe94b07fcb060abef1ad0e63fb4eb (diff)
downloadaspectj-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.java22
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(