1.1 --- a/javap/src/main/java/org/apidesign/javap/AnnotationParser.java Sun Feb 03 18:58:09 2013 +0100
1.2 +++ b/javap/src/main/java/org/apidesign/javap/AnnotationParser.java Sun Feb 03 19:39:34 2013 +0100
1.3 @@ -131,7 +131,7 @@
1.4 int enumN = dis.readUnsignedShort();
1.5 String val = cd.stringValue(enumN, textual);
1.6 if (textual) {
1.7 - val = '"' + val + '"';
1.8 + val = "vm." + attrType.substring(1, attrType.length() - 1).replace('/', '_') + "(false).constructor." + val;
1.9 }
1.10 visitAttr(typeName, attrName, attrType, val);
1.11 } else {
2.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/ClassTest.java Sun Feb 03 18:58:09 2013 +0100
2.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/ClassTest.java Sun Feb 03 19:39:34 2013 +0100
2.3 @@ -90,6 +90,9 @@
2.4 @Test public void jsArrayAnnotation() throws Exception {
2.5 assertExec("Check array annotation", Classes.class, "getMarkerNicknames__Ljava_lang_String_2", Classes.getMarkerNicknames());
2.6 }
2.7 + @Test public void jsEnumAnnotation() throws Exception {
2.8 + assertExec("Check enum annotation", Classes.class, "getMarkerE__Ljava_lang_String_2", Classes.getMarkerE());
2.9 + }
2.10 @Test public void jsStringAnnotation() throws Exception {
2.11 assertExec("Check class annotation", Classes.class, "getNamer__Ljava_lang_String_2Z", "my text", true);
2.12 }
3.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/Classes.java Sun Feb 03 18:58:09 2013 +0100
3.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/Classes.java Sun Feb 03 19:39:34 2013 +0100
3.3 @@ -19,6 +19,7 @@
3.4
3.5 import java.io.IOException;
3.6 import java.lang.annotation.Annotation;
3.7 +import java.lang.annotation.RetentionPolicy;
3.8 import java.lang.reflect.Method;
3.9 import java.net.MalformedURLException;
3.10 import org.apidesign.bck2brwsr.core.JavaScriptBody;
3.11 @@ -27,7 +28,7 @@
3.12 *
3.13 * @author Jaroslav Tulach <jtulach@netbeans.org>
3.14 */
3.15 -@ClassesMarker(number = 10, nicknames = { "Ten", "Deset" })
3.16 +@ClassesMarker(number = 10, nicknames = { "Ten", "Deset" }, count = ClassesMarker.E.TWO)
3.17 @ClassesNamer(name = "my text")
3.18 public class Classes {
3.19 public static String nameOfIO() {
3.20 @@ -40,6 +41,7 @@
3.21
3.22 private static final Class<?> PRELOAD = Runnable.class;
3.23 private static final Class<?> PRELOAD2 = ClassesMarker.E.class;
3.24 + private static final Class<?> PRELOAD3 = RetentionPolicy.class;
3.25
3.26 public static boolean isInterface(String s) throws ClassNotFoundException {
3.27 return Class.forName(s).isInterface();
3.28 @@ -101,6 +103,13 @@
3.29 }
3.30 return sb.toString().toString();
3.31 }
3.32 + public static String getMarkerE() {
3.33 + ClassesMarker cm = Classes.class.getAnnotation(ClassesMarker.class);
3.34 + if (cm == null) {
3.35 + return null;
3.36 + }
3.37 + return cm.count().name();
3.38 + }
3.39 public static String getNamer(boolean direct) {
3.40 if (direct) {
3.41 ClassesNamer cm = Classes.class.getAnnotation(ClassesNamer.class);