[seam-commits] Seam SVN: r11711 - in modules/trunk/remoting: examples/helloworld/src/main/webapp and 5 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Tue Dec 1 18:47:17 EST 2009


Author: shane.bryzak at jboss.com
Date: 2009-12-01 18:47:16 -0500 (Tue, 01 Dec 2009)
New Revision: 11711

Added:
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/ClassOrInterfaceType.java
Modified:
   modules/trunk/remoting/examples/helloworld/src/main/java/org/jboss/seam/remoting/examples/helloworld/HelloAction.java
   modules/trunk/remoting/examples/helloworld/src/main/java/org/jboss/seam/remoting/examples/helloworld/HelloQualifier.java
   modules/trunk/remoting/examples/helloworld/src/main/webapp/helloworld.xhtml
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationInvocationHandler.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/Call.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/AnnotationParser.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Annotation.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/AnnotationsUnit.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/BooleanLiteral.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Literal.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MarkerAnnotation.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValue.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValueArrayInitializer.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePair.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePairs.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Name.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Node.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeChoice.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeList.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListInterface.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListOptional.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeOptional.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeSequence.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeToken.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NormalAnnotation.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NullLiteral.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/PrimitiveType.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/SingleMemberAnnotation.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/DepthFirstVisitor.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJDepthFirst.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguDepthFirst.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguVisitor.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVisitor.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidDepthFirst.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidVisitor.java
   modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/Visitor.java
   modules/trunk/remoting/src/main/javacc/AnnotationParser.jj
   modules/trunk/remoting/src/main/javacc/readme.txt
Log:
added support for class-valued qualifier members


Modified: modules/trunk/remoting/examples/helloworld/src/main/java/org/jboss/seam/remoting/examples/helloworld/HelloAction.java
===================================================================
--- modules/trunk/remoting/examples/helloworld/src/main/java/org/jboss/seam/remoting/examples/helloworld/HelloAction.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/examples/helloworld/src/main/java/org/jboss/seam/remoting/examples/helloworld/HelloAction.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -2,7 +2,7 @@
 
 import org.jboss.seam.remoting.annotations.WebRemote;
 
- at HelloQualifier(foo = "abc")
+ at HelloQualifier(foo = 123, bar = String.class)
 public class HelloAction {
   @WebRemote
   public String sayHello(String name) {

Modified: modules/trunk/remoting/examples/helloworld/src/main/java/org/jboss/seam/remoting/examples/helloworld/HelloQualifier.java
===================================================================
--- modules/trunk/remoting/examples/helloworld/src/main/java/org/jboss/seam/remoting/examples/helloworld/HelloQualifier.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/examples/helloworld/src/main/java/org/jboss/seam/remoting/examples/helloworld/HelloQualifier.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -6,11 +6,13 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
+import javax.enterprise.util.Nonbinding;
 import javax.inject.Qualifier;
 
 @Retention(RUNTIME)
 @Target(TYPE)
 @Qualifier
 public @interface HelloQualifier {
-   String foo() default "bar";
+   int foo();
+   Class bar();
 }

Modified: modules/trunk/remoting/examples/helloworld/src/main/webapp/helloworld.xhtml
===================================================================
--- modules/trunk/remoting/examples/helloworld/src/main/webapp/helloworld.xhtml	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/examples/helloworld/src/main/webapp/helloworld.xhtml	2009-12-01 23:47:16 UTC (rev 11711)
@@ -25,7 +25,8 @@
       var name = prompt("What is your name?");
       if (name == null) return;
       var callback = function(result) { alert(result); };
-      Seam.Component.create("org.jboss.seam.remoting.examples.helloworld.HelloAction", "@org.jboss.seam.remoting.examples.helloworld.HelloQualifier(foo=\"abc\")").sayHello(name, callback);
+      Seam.Component.create("org.jboss.seam.remoting.examples.helloworld.HelloAction", 
+         "@HelloQualifier(foo = 123, bar = String.class)").sayHello(name, callback);
     }
   </script>  
 

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationInvocationHandler.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationInvocationHandler.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationInvocationHandler.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -57,7 +57,7 @@
       for (int i = 0; i < annotationType.getDeclaredMethods().length; i++)
       {
          string.append(annotationType.getDeclaredMethods()[i].getName()).append('=');
-         Object value = invoke(annotationType.getDeclaredMethods()[i], this);
+         Object value = memberValues.get(annotationType.getDeclaredMethods()[i].getName());
          if (value instanceof boolean[])
          {
             appendInBraces(string, Arrays.toString((boolean[]) value));

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -13,6 +13,8 @@
 import org.jboss.seam.remoting.annotationparser.AnnotationParser;
 import org.jboss.seam.remoting.annotationparser.ParseException;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.AnnotationsUnit;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.BooleanLiteral;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.ClassOrInterfaceType;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.Literal;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.MarkerAnnotation;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.MemberValue;
@@ -20,7 +22,6 @@
 import org.jboss.seam.remoting.annotationparser.syntaxtree.MemberValuePairs;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.Name;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.Node;
-import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeChoice;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeListOptional;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeOptional;
 import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeSequence;
@@ -68,7 +69,6 @@
    
    private Annotation[] annotations;
    
-   @SuppressWarnings("unchecked")
    public AnnotationsParser(Class<?> beanType, String declaration)
    {
       this.beanType = beanType;
@@ -84,7 +84,7 @@
       catch (ParseException e)
       {
          throw new IllegalArgumentException(
-               "Error while parsing annotation declaration: " + declaration);
+               "Error while parsing annotation declaration: " + declaration, e);
       }
       
       annotations = new Annotation[meta.size()];
@@ -195,10 +195,16 @@
             {
                for (Node n : mvp.f1.nodes)
                {
-                  if (n instanceof MemberValuePair)
+                  if (n instanceof NodeSequence)
                   {
-                     MemberValuePair p = (MemberValuePair) n;
-                     extractMemberValue(metadata, p.f0.tokenImage, p.f2);
+                     for (Node nsn : ((NodeSequence) n).nodes)
+                     {                        
+                        if (nsn instanceof MemberValuePair)
+                        {
+                           MemberValuePair p = (MemberValuePair) nsn;
+                           extractMemberValue(metadata, p.f0.tokenImage, p.f2);
+                        }                        
+                     }
                   }
                }
             }
@@ -243,35 +249,85 @@
          case 0: // Annotation  
             break;
          case 1: // MemberValueArray
+            // not supported - array member values are non-binding
             break;
          case 2: // Literal
             value = convertLiteral((Literal) memberValue.f0.choice);
             break;
+         case 3: // ClassOrInterfaceType
+            value = convertClassOrInterfaceType((ClassOrInterfaceType) memberValue.f0.choice);
+            break;
       }
       
       metadata.addMemberValue(memberName, value);
    }
    
    private Object convertLiteral(Literal literal)
-   {
-      // TODO add the missing conversions
-      
+   {     
       switch (literal.f0.which)
       {
          case 0: // <INTEGER_LITERAL>
             return Integer.parseInt(((NodeToken) literal.f0.choice).tokenImage);
          case 1: // <FLOATING_POINT_LITERAL>
             return Float.parseFloat(((NodeToken) literal.f0.choice).tokenImage);
-         case 2: // <CHARACTER_LITERAL>                  
+         case 2: // <CHARACTER_LITERAL>
+            return ((NodeToken) literal.f0.choice).tokenImage.charAt(1); // ignore the single quotes
          case 3: // <STRING_LITERAL>
-            String value = ((NodeToken) literal.f0.choice).tokenImage; 
-            return value.substring(1, value.length() - 1); // strip the double quotes
+            String stringVal = ((NodeToken) literal.f0.choice).tokenImage; 
+            return stringVal.substring(1, stringVal.length() - 1); // strip the double quotes
          case 4: // BooleanLiteral()
+            return "true".equals(((NodeToken) ((BooleanLiteral) literal.f0.choice).f0.choice).tokenImage);
          case 5: // NullLiteral()
+            return null;
       }      
       return null;
    }
+   
+   private Class<?> convertClassOrInterfaceType(ClassOrInterfaceType node)
+   {
+      StringBuilder sb = new StringBuilder();
+      sb.append(node.f0.tokenImage);
       
+      if (node.f1.present())
+      {
+         for (Node n : node.f1.nodes)
+         {
+            if (n instanceof NodeSequence)
+            {
+               for (Node nsn : ((NodeSequence) n).nodes)
+               {
+                  if (nsn instanceof NodeToken)
+                  {
+                     sb.append(((NodeToken) nsn).tokenImage);
+                  }
+               }
+            }
+         }
+      }
+      
+      String className = sb.toString();
+      
+      try
+      {
+         return Class.forName(className);
+      }
+      catch (ClassNotFoundException e)
+      {
+         if (!className.startsWith("java.lang."))
+         {
+            // try finding the class in the java.lang package
+            try
+            {
+               return Class.forName("java.lang." + className);
+            }
+            catch (ClassNotFoundException e1) { }            
+         }
+
+         throw new IllegalArgumentException(
+               "Invalid class name specified for annotation member value: " + className);
+      }            
+   }
+      
    private String extractName(Name name)
    {
       StringBuilder sb = new StringBuilder();

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/Call.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/Call.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/Call.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -72,7 +72,9 @@
                   
          if (beans.isEmpty())
          {
-            throw new IllegalArgumentException("Invalid bean name specified: " + beanName);         
+            throw new IllegalArgumentException(
+                  "Could not find bean with bean with type/name " + beanName + 
+                  ", qualifiers [" + qualifiers + "]");         
          }         
       }  
       
@@ -193,7 +195,6 @@
 
       Object[] params = convertParams(m.getGenericParameterTypes());
 
-      // Invoke!
       try
       {
          result = m.invoke(instance, params);

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/AnnotationParser.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/AnnotationParser.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/AnnotationParser.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -426,6 +426,7 @@
    Annotation n1;
    MemberValueArrayInitializer n2;
    Literal n3;
+   ClassOrInterfaceType n4;
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case AT:
       n1 = Annotation();
@@ -445,6 +446,10 @@
       n3 = Literal();
         n0 = new NodeChoice(n3, 2);
       break;
+    case IDENTIFIER:
+      n4 = ClassOrInterfaceType();
+        n0 = new NodeChoice(n4, 3);
+      break;
     default:
       jj_consume_token(-1);
       throw new ParseException();
@@ -453,6 +458,46 @@
     throw new Error("Missing return statement in function");
   }
 
+  final public ClassOrInterfaceType ClassOrInterfaceType() throws ParseException {
+   NodeToken n0;
+   Token n1;
+   NodeListOptional n2 = new NodeListOptional();
+   NodeSequence n3;
+   NodeToken n4;
+   Token n5;
+   NodeToken n6;
+   Token n7;
+   NodeToken n8;
+   Token n9;
+   NodeToken n10;
+   Token n11;
+    n1 = jj_consume_token(IDENTIFIER);
+                     n0 = JTBToolkit.makeNodeToken(n1);
+    label_4:
+    while (true) {
+      if (jj_2_3(2)) {
+        ;
+      } else {
+        break label_4;
+      }
+        n3 = new NodeSequence(2);
+      n5 = jj_consume_token(DOT);
+               n4 = JTBToolkit.makeNodeToken(n5);
+        n3.addNode(n4);
+      n7 = jj_consume_token(IDENTIFIER);
+                        n6 = JTBToolkit.makeNodeToken(n7);
+        n3.addNode(n6);
+        n2.addNode(n3);
+    }
+     n2.nodes.trimToSize();
+    n9 = jj_consume_token(DOT);
+            n8 = JTBToolkit.makeNodeToken(n9);
+    n11 = jj_consume_token(CLASS);
+                 n10 = JTBToolkit.makeNodeToken(n11);
+     {if (true) return new ClassOrInterfaceType(n0,n2,n8,n10);}
+    throw new Error("Missing return statement in function");
+  }
+
   final public MemberValueArrayInitializer MemberValueArrayInitializer() throws ParseException {
    NodeToken n0;
    Token n1;
@@ -470,12 +515,12 @@
     n1 = jj_consume_token(LBRACE);
             n0 = JTBToolkit.makeNodeToken(n1);
     n2 = MemberValue();
-    label_4:
+    label_5:
     while (true) {
-      if (jj_2_3(2)) {
+      if (jj_2_4(2)) {
         ;
       } else {
-        break label_4;
+        break label_5;
       }
         n4 = new NodeSequence(2);
       n6 = jj_consume_token(COMMA);
@@ -519,154 +564,168 @@
     catch(LookaheadSuccess ls) { return true; }
   }
 
-  private boolean jj_3R_17() {
-    if (jj_3R_26()) return true;
+  private boolean jj_2_4(int xla) {
+    jj_la = xla; jj_lastpos = jj_scanpos = token;
+    try { return !jj_3_4(); }
+    catch(LookaheadSuccess ls) { return true; }
+  }
+
+  private boolean jj_3R_20() {
+    if (jj_3R_29()) return true;
     return false;
   }
 
-  private boolean jj_3R_16() {
-    if (jj_3R_25()) return true;
+  private boolean jj_3R_19() {
+    if (jj_3R_28()) return true;
     return false;
   }
 
-  private boolean jj_3R_26() {
+  private boolean jj_3R_13() {
+    if (jj_3R_17()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_29() {
     if (jj_scan_token(AT)) return true;
     return false;
   }
 
-  private boolean jj_3R_15() {
-    if (jj_3R_24()) return true;
+  private boolean jj_3R_12() {
+    if (jj_3R_16()) return true;
     return false;
   }
 
-  private boolean jj_3R_11() {
-    if (jj_3R_14()) return true;
+  private boolean jj_3R_18() {
+    if (jj_3R_27()) return true;
     return false;
   }
 
-  private boolean jj_3R_10() {
-    if (jj_3R_13()) return true;
+  private boolean jj_3R_11() {
+    if (jj_3R_15()) return true;
     return false;
   }
 
-  private boolean jj_3R_8() {
+  private boolean jj_3R_9() {
     if (jj_scan_token(DOT)) return true;
     if (jj_scan_token(IDENTIFIER)) return true;
     return false;
   }
 
-  private boolean jj_3R_12() {
+  private boolean jj_3R_14() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_15()) {
+    if (jj_3R_18()) {
     jj_scanpos = xsp;
-    if (jj_3R_16()) {
+    if (jj_3R_19()) {
     jj_scanpos = xsp;
-    if (jj_3R_17()) return true;
+    if (jj_3R_20()) return true;
     }
     }
     return false;
   }
 
-  private boolean jj_3R_23() {
-    if (jj_3R_28()) return true;
+  private boolean jj_3R_10() {
+    if (jj_3R_14()) return true;
     return false;
   }
 
-  private boolean jj_3R_9() {
-    if (jj_3R_12()) return true;
+  private boolean jj_3R_26() {
+    if (jj_3R_31()) return true;
     return false;
   }
 
-  private boolean jj_3R_22() {
-    if (jj_3R_27()) return true;
+  private boolean jj_3R_25() {
+    if (jj_3R_30()) return true;
     return false;
   }
 
-  private boolean jj_3R_5() {
+  private boolean jj_3R_6() {
     if (jj_scan_token(IDENTIFIER)) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_8()) { jj_scanpos = xsp; break; }
+      if (jj_3R_9()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_7() {
+  private boolean jj_3R_8() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_9()) {
-    jj_scanpos = xsp;
     if (jj_3R_10()) {
     jj_scanpos = xsp;
-    if (jj_3R_11()) return true;
+    if (jj_3R_11()) {
+    jj_scanpos = xsp;
+    if (jj_3R_12()) {
+    jj_scanpos = xsp;
+    if (jj_3R_13()) return true;
     }
     }
+    }
     return false;
   }
 
-  private boolean jj_3R_21() {
+  private boolean jj_3R_24() {
     if (jj_scan_token(STRING_LITERAL)) return true;
     return false;
   }
 
-  private boolean jj_3R_20() {
+  private boolean jj_3R_23() {
     if (jj_scan_token(CHARACTER_LITERAL)) return true;
     return false;
   }
 
-  private boolean jj_3R_19() {
-    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
+  private boolean jj_3_3() {
+    if (jj_scan_token(DOT)) return true;
+    if (jj_scan_token(IDENTIFIER)) return true;
     return false;
   }
 
-  private boolean jj_3_3() {
-    if (jj_scan_token(COMMA)) return true;
-    if (jj_3R_7()) return true;
+  private boolean jj_3R_22() {
+    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
     return false;
   }
 
-  private boolean jj_3R_28() {
+  private boolean jj_3R_31() {
     if (jj_scan_token(NULL)) return true;
     return false;
   }
 
-  private boolean jj_3R_24() {
+  private boolean jj_3R_27() {
     if (jj_scan_token(AT)) return true;
     return false;
   }
 
-  private boolean jj_3R_6() {
+  private boolean jj_3R_7() {
     if (jj_scan_token(IDENTIFIER)) return true;
     if (jj_scan_token(ASSIGN)) return true;
     return false;
   }
 
-  private boolean jj_3R_18() {
+  private boolean jj_3R_21() {
     if (jj_scan_token(INTEGER_LITERAL)) return true;
     return false;
   }
 
-  private boolean jj_3R_13() {
-    if (jj_scan_token(LBRACE)) return true;
+  private boolean jj_3R_17() {
+    if (jj_scan_token(IDENTIFIER)) return true;
     return false;
   }
 
-  private boolean jj_3R_14() {
+  private boolean jj_3R_16() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_18()) {
+    if (jj_3R_21()) {
     jj_scanpos = xsp;
-    if (jj_3R_19()) {
+    if (jj_3R_22()) {
     jj_scanpos = xsp;
-    if (jj_3R_20()) {
+    if (jj_3R_23()) {
     jj_scanpos = xsp;
-    if (jj_3R_21()) {
+    if (jj_3R_24()) {
     jj_scanpos = xsp;
-    if (jj_3R_22()) {
+    if (jj_3R_25()) {
     jj_scanpos = xsp;
-    if (jj_3R_23()) return true;
+    if (jj_3R_26()) return true;
     }
     }
     }
@@ -675,47 +734,58 @@
     return false;
   }
 
-  private boolean jj_3R_25() {
+  private boolean jj_3R_28() {
     if (jj_scan_token(AT)) return true;
     return false;
   }
 
-  private boolean jj_3R_30() {
+  private boolean jj_3_4() {
+    if (jj_scan_token(COMMA)) return true;
+    if (jj_3R_8()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_33() {
     if (jj_scan_token(FALSE)) return true;
     return false;
   }
 
+  private boolean jj_3R_15() {
+    if (jj_scan_token(LBRACE)) return true;
+    return false;
+  }
+
   private boolean jj_3_2() {
     if (jj_scan_token(AT)) return true;
-    if (jj_3R_5()) return true;
+    if (jj_3R_6()) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_29() {
+  private boolean jj_3R_32() {
     if (jj_scan_token(TRUE)) return true;
     return false;
   }
 
   private boolean jj_3_1() {
     if (jj_scan_token(AT)) return true;
-    if (jj_3R_5()) return true;
+    if (jj_3R_6()) return true;
     if (jj_scan_token(LPAREN)) return true;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_6()) {
+    if (jj_3R_7()) {
     jj_scanpos = xsp;
     if (jj_scan_token(78)) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_27() {
+  private boolean jj_3R_30() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_29()) {
+    if (jj_3R_32()) {
     jj_scanpos = xsp;
-    if (jj_3R_30()) return true;
+    if (jj_3R_33()) return true;
     }
     return false;
   }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Annotation.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Annotation.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Annotation.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> NormalAnnotation()
@@ -19,16 +17,16 @@
       f0 = n0;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/AnnotationsUnit.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/AnnotationsUnit.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/AnnotationsUnit.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> [ Annotation() ( "," Annotation() )* ]
@@ -17,16 +15,16 @@
       f0 = n0;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/BooleanLiteral.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/BooleanLiteral.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/BooleanLiteral.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> "true"
@@ -18,16 +16,16 @@
       f0 = n0;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Added: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/ClassOrInterfaceType.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/ClassOrInterfaceType.java	                        (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/ClassOrInterfaceType.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -0,0 +1,47 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+/**
+ * Grammar production:
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ * f2 -> "."
+ * f3 -> "class"
+ */
+public class ClassOrInterfaceType implements Node {
+   public NodeToken f0;
+   public NodeListOptional f1;
+   public NodeToken f2;
+   public NodeToken f3;
+
+   public ClassOrInterfaceType(NodeToken n0, NodeListOptional n1, NodeToken n2, NodeToken n3) {
+      f0 = n0;
+      f1 = n1;
+      f2 = n2;
+      f3 = n3;
+   }
+
+   public ClassOrInterfaceType(NodeToken n0, NodeListOptional n1) {
+      f0 = n0;
+      f1 = n1;
+      f2 = new NodeToken(".");
+      f3 = new NodeToken("class");
+   }
+
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
+      v.visit(this);
+   }
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
+      return v.visit(this,argu);
+   }
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
+      return v.visit(this);
+   }
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
+      v.visit(this,argu);
+   }
+}
+

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Literal.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Literal.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Literal.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> <INTEGER_LITERAL>
@@ -22,16 +20,16 @@
       f0 = n0;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MarkerAnnotation.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MarkerAnnotation.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MarkerAnnotation.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> "@"
@@ -25,16 +23,16 @@
       f1 = n0;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValue.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValue.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValue.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,13 +4,12 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> Annotation()
  *       | MemberValueArrayInitializer()
  *       | Literal()
+ *       | ClassOrInterfaceType()
  */
 public class MemberValue implements Node {
    public NodeChoice f0;
@@ -19,16 +18,16 @@
       f0 = n0;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValueArrayInitializer.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValueArrayInitializer.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValueArrayInitializer.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> "{"
@@ -37,16 +35,16 @@
       f4 = new NodeToken("}");
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePair.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePair.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePair.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> <IDENTIFIER>
@@ -29,16 +27,16 @@
       f2 = n1;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePairs.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePairs.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePairs.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> MemberValuePair()
@@ -20,16 +18,16 @@
       f1 = n1;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Name.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Name.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Name.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> <IDENTIFIER>
@@ -20,16 +18,16 @@
       f1 = n1;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Node.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Node.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Node.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,15 +4,13 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * The interface which all syntax tree classes must implement.
  */
 public interface Node extends java.io.Serializable {
-   public void accept(Visitor v);
-   public <R,A> R accept(GJVisitor<R,A> v, A argu);
-   public <R> R accept(GJNoArguVisitor<R> v);
-   public <A> void accept(GJVoidVisitor<A> v, A argu);
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v);
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu);
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v);
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu);
 }
 

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeChoice.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeChoice.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeChoice.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Represents a grammar choice, e.g. ( A | B )
  */
@@ -19,16 +17,16 @@
       which = whichChoice;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       choice.accept(v);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return choice.accept(v,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return choice.accept(v);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       choice.accept(v,argu);
    }
 

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeList.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeList.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeList.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,7 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
 import java.util.*;
 
 /**
@@ -27,16 +26,16 @@
    public Enumeration<Node> elements() { return nodes.elements(); }
    public Node elementAt(int i)  { return nodes.elementAt(i); }
    public int size()             { return nodes.size(); }
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListInterface.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListInterface.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListInterface.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * The interface which NodeList, NodeListOptional, and NodeSequence
  * implement.
@@ -16,9 +14,9 @@
    public java.util.Enumeration<Node> elements();
    public int size();
 
-   public void accept(Visitor v);
-   public <R,A> R accept(GJVisitor<R,A> v, A argu);
-   public <R> R accept(GJNoArguVisitor<R> v);
-   public <A> void accept(GJVoidVisitor<A> v, A argu);
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v);
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu);
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v);
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu);
 }
 

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListOptional.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListOptional.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListOptional.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,7 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
 import java.util.*;
 
 /**
@@ -28,16 +27,16 @@
    public Node elementAt(int i)  { return nodes.elementAt(i); }
    public int size()             { return nodes.size(); }
    public boolean present()      { return nodes.size() != 0; }
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeOptional.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeOptional.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeOptional.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Represents an grammar optional node, e.g. ( A )? or [ A ]
  */
@@ -24,16 +22,16 @@
 
       node = n;
    }
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
    public boolean present()   { return node != null; }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeSequence.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeSequence.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeSequence.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,7 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
 import java.util.*;
 
 /**
@@ -28,16 +27,16 @@
    public Node elementAt(int i)  { return nodes.elementAt(i); }
    public Enumeration<Node> elements() { return nodes.elements(); }
    public int size()             { return nodes.size(); }
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeToken.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeToken.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeToken.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,7 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
 import java.util.*;
 /**
  * Represents a single token in the grammar.  If the "-tk" option
@@ -60,16 +59,16 @@
        return buf.toString();
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NormalAnnotation.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NormalAnnotation.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NormalAnnotation.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> "@"
@@ -37,16 +35,16 @@
       f4 = new NodeToken(")");
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NullLiteral.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NullLiteral.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NullLiteral.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> "null"
@@ -21,16 +19,16 @@
       f0 = new NodeToken("null");
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/PrimitiveType.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/PrimitiveType.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/PrimitiveType.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> "boolean"
@@ -24,16 +22,16 @@
       f0 = n0;
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/SingleMemberAnnotation.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/SingleMemberAnnotation.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/SingleMemberAnnotation.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -4,8 +4,6 @@
 
 package org.jboss.seam.remoting.annotationparser.syntaxtree;
 
-import org.jboss.seam.remoting.annotationparser.visitor.*;
-
 /**
  * Grammar production:
  * f0 -> "@"
@@ -37,16 +35,16 @@
       f4 = new NodeToken(")");
    }
 
-   public void accept(Visitor v) {
+   public void accept(org.jboss.seam.remoting.annotationparser.visitor.Visitor v) {
       v.visit(this);
    }
-   public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+   public <R,A> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJVisitor<R,A> v, A argu) {
       return v.visit(this,argu);
    }
-   public <R> R accept(GJNoArguVisitor<R> v) {
+   public <R> R accept(org.jboss.seam.remoting.annotationparser.visitor.GJNoArguVisitor<R> v) {
       return v.visit(this);
    }
-   public <A> void accept(GJVoidVisitor<A> v, A argu) {
+   public <A> void accept(org.jboss.seam.remoting.annotationparser.visitor.GJVoidVisitor<A> v, A argu) {
       v.visit(this,argu);
    }
 }

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/DepthFirstVisitor.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/DepthFirstVisitor.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/DepthFirstVisitor.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -170,12 +170,26 @@
     * f0 -> Annotation()
     *       | MemberValueArrayInitializer()
     *       | Literal()
+    *       | ClassOrInterfaceType()
     */
    public void visit(MemberValue n) {
       n.f0.accept(this);
    }
 
    /**
+    * f0 -> <IDENTIFIER>
+    * f1 -> ( "." <IDENTIFIER> )*
+    * f2 -> "."
+    * f3 -> "class"
+    */
+   public void visit(ClassOrInterfaceType n) {
+      n.f0.accept(this);
+      n.f1.accept(this);
+      n.f2.accept(this);
+      n.f3.accept(this);
+   }
+
+   /**
     * f0 -> "{"
     * f1 -> MemberValue()
     * f2 -> ( "," MemberValue() )*

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJDepthFirst.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJDepthFirst.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJDepthFirst.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -214,6 +214,7 @@
     * f0 -> Annotation()
     *       | MemberValueArrayInitializer()
     *       | Literal()
+    *       | ClassOrInterfaceType()
     */
    public R visit(MemberValue n, A argu) {
       R _ret=null;
@@ -222,6 +223,21 @@
    }
 
    /**
+    * f0 -> <IDENTIFIER>
+    * f1 -> ( "." <IDENTIFIER> )*
+    * f2 -> "."
+    * f3 -> "class"
+    */
+   public R visit(ClassOrInterfaceType n, A argu) {
+      R _ret=null;
+      n.f0.accept(this, argu);
+      n.f1.accept(this, argu);
+      n.f2.accept(this, argu);
+      n.f3.accept(this, argu);
+      return _ret;
+   }
+
+   /**
     * f0 -> "{"
     * f1 -> MemberValue()
     * f2 -> ( "," MemberValue() )*

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguDepthFirst.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguDepthFirst.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguDepthFirst.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -214,6 +214,7 @@
     * f0 -> Annotation()
     *       | MemberValueArrayInitializer()
     *       | Literal()
+    *       | ClassOrInterfaceType()
     */
    public R visit(MemberValue n) {
       R _ret=null;
@@ -222,6 +223,21 @@
    }
 
    /**
+    * f0 -> <IDENTIFIER>
+    * f1 -> ( "." <IDENTIFIER> )*
+    * f2 -> "."
+    * f3 -> "class"
+    */
+   public R visit(ClassOrInterfaceType n) {
+      R _ret=null;
+      n.f0.accept(this);
+      n.f1.accept(this);
+      n.f2.accept(this);
+      n.f3.accept(this);
+      return _ret;
+   }
+
+   /**
     * f0 -> "{"
     * f1 -> MemberValue()
     * f2 -> ( "," MemberValue() )*

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguVisitor.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguVisitor.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguVisitor.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -118,10 +118,19 @@
     * f0 -> Annotation()
     *       | MemberValueArrayInitializer()
     *       | Literal()
+    *       | ClassOrInterfaceType()
     */
    public R visit(MemberValue n);
 
    /**
+    * f0 -> <IDENTIFIER>
+    * f1 -> ( "." <IDENTIFIER> )*
+    * f2 -> "."
+    * f3 -> "class"
+    */
+   public R visit(ClassOrInterfaceType n);
+
+   /**
     * f0 -> "{"
     * f1 -> MemberValue()
     * f2 -> ( "," MemberValue() )*

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVisitor.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVisitor.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVisitor.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -118,10 +118,19 @@
     * f0 -> Annotation()
     *       | MemberValueArrayInitializer()
     *       | Literal()
+    *       | ClassOrInterfaceType()
     */
    public R visit(MemberValue n, A argu);
 
    /**
+    * f0 -> <IDENTIFIER>
+    * f1 -> ( "." <IDENTIFIER> )*
+    * f2 -> "."
+    * f3 -> "class"
+    */
+   public R visit(ClassOrInterfaceType n, A argu);
+
+   /**
     * f0 -> "{"
     * f1 -> MemberValue()
     * f2 -> ( "," MemberValue() )*

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidDepthFirst.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidDepthFirst.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidDepthFirst.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -180,12 +180,26 @@
     * f0 -> Annotation()
     *       | MemberValueArrayInitializer()
     *       | Literal()
+    *       | ClassOrInterfaceType()
     */
    public void visit(MemberValue n, A argu) {
       n.f0.accept(this, argu);
    }
 
    /**
+    * f0 -> <IDENTIFIER>
+    * f1 -> ( "." <IDENTIFIER> )*
+    * f2 -> "."
+    * f3 -> "class"
+    */
+   public void visit(ClassOrInterfaceType n, A argu) {
+      n.f0.accept(this, argu);
+      n.f1.accept(this, argu);
+      n.f2.accept(this, argu);
+      n.f3.accept(this, argu);
+   }
+
+   /**
     * f0 -> "{"
     * f1 -> MemberValue()
     * f2 -> ( "," MemberValue() )*

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidVisitor.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidVisitor.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidVisitor.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -118,10 +118,19 @@
     * f0 -> Annotation()
     *       | MemberValueArrayInitializer()
     *       | Literal()
+    *       | ClassOrInterfaceType()
     */
    public void visit(MemberValue n, A argu);
 
    /**
+    * f0 -> <IDENTIFIER>
+    * f1 -> ( "." <IDENTIFIER> )*
+    * f2 -> "."
+    * f3 -> "class"
+    */
+   public void visit(ClassOrInterfaceType n, A argu);
+
+   /**
     * f0 -> "{"
     * f1 -> MemberValue()
     * f2 -> ( "," MemberValue() )*

Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/Visitor.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/Visitor.java	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/Visitor.java	2009-12-01 23:47:16 UTC (rev 11711)
@@ -118,10 +118,19 @@
     * f0 -> Annotation()
     *       | MemberValueArrayInitializer()
     *       | Literal()
+    *       | ClassOrInterfaceType()
     */
    public void visit(MemberValue n);
 
    /**
+    * f0 -> <IDENTIFIER>
+    * f1 -> ( "." <IDENTIFIER> )*
+    * f2 -> "."
+    * f3 -> "class"
+    */
+   public void visit(ClassOrInterfaceType n);
+
+   /**
     * f0 -> "{"
     * f1 -> MemberValue()
     * f2 -> ( "," MemberValue() )*

Modified: modules/trunk/remoting/src/main/javacc/AnnotationParser.jj
===================================================================
--- modules/trunk/remoting/src/main/javacc/AnnotationParser.jj	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/javacc/AnnotationParser.jj	2009-12-01 23:47:16 UTC (rev 11711)
@@ -439,8 +439,16 @@
    MemberValueArrayInitializer()
  |
    Literal()
+ |
+   ClassOrInterfaceType()
 }
 
+void ClassOrInterfaceType():
+{}
+{
+  <IDENTIFIER> ( LOOKAHEAD(2) "." <IDENTIFIER> )* "." "class"
+}
+
 void  MemberValueArrayInitializer():
 {}
 {

Modified: modules/trunk/remoting/src/main/javacc/readme.txt
===================================================================
--- modules/trunk/remoting/src/main/javacc/readme.txt	2009-12-01 19:18:09 UTC (rev 11710)
+++ modules/trunk/remoting/src/main/javacc/readme.txt	2009-12-01 23:47:16 UTC (rev 11711)
@@ -2,4 +2,18 @@
 
 JavaCC can be downloaded from https://javacc.dev.java.net/.
 
-Usage: /path/to/javacc AnnotationParser.jj
+JTB (Java Tree Builder) can be downloaded from http://compilers.cs.ucla.edu/jtb/
+
+Steps:
+
+1. First run JTB on the grammar file:
+
+  java -jar jtb132.jar -np org.jboss.seam.remoting.annotationparser.syntaxtree
+-vp org.jboss.seam.remoting.annotationparser.visitor AnnotationParser.jj
+
+This command should be run from the src/main/java/org/jboss/seam/remoting/annotationparser directory.
+
+2. Next run javacc on jtb.out.jj.  This command should also be run in the
+annotationparser directory.
+
+Usage: /path/to/javacc jtb.out.jj



More information about the seam-commits mailing list