Seam SVN: r11708 - modules/trunk/remoting/src/main/java/org/jboss/seam/remoting.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-12-01 05:53:56 -0500 (Tue, 01 Dec 2009)
New Revision: 11708
Added:
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationInvocationHandler.java
Modified:
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java
Log:
support for qualifiers with literal member values
Added: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationInvocationHandler.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationInvocationHandler.java (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationInvocationHandler.java 2009-12-01 10:53:56 UTC (rev 11708)
@@ -0,0 +1,300 @@
+package org.jboss.seam.remoting;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.Map;
+
+/**
+ *
+ * @author Shane Bryzak
+ */
+public class AnnotationInvocationHandler implements InvocationHandler
+{
+ private Class<? extends Annotation> annotationType;
+
+ private Map<String,Object> memberValues;
+
+ public AnnotationInvocationHandler(Class<? extends Annotation> annotationType,
+ Map<String,Object> memberValues)
+ {
+ this.annotationType = annotationType;
+ this.memberValues = memberValues;
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args)
+ throws Throwable
+ {
+ if ("annotationType".equals(method.getName()))
+ {
+ return annotationType;
+ }
+ else if ("equals".equals(method.getName()))
+ {
+ return equals(args[0]);
+ }
+ else if ("hashCode".equals(method.getName()))
+ {
+ return hashCode();
+ }
+ else if ("toString".equals(method.getName()))
+ {
+ return toString();
+ }
+ else
+ {
+ return memberValues.get(method.getName());
+ }
+ }
+
+ @Override
+ public String toString()
+ {
+ StringBuilder string = new StringBuilder();
+ string.append('@').append(annotationType.getName()).append('(');
+ for (int i = 0; i < annotationType.getDeclaredMethods().length; i++)
+ {
+ string.append(annotationType.getDeclaredMethods()[i].getName()).append('=');
+ Object value = invoke(annotationType.getDeclaredMethods()[i], this);
+ if (value instanceof boolean[])
+ {
+ appendInBraces(string, Arrays.toString((boolean[]) value));
+ }
+ else if (value instanceof byte[])
+ {
+ appendInBraces(string, Arrays.toString((byte[]) value));
+ }
+ else if (value instanceof short[])
+ {
+ appendInBraces(string, Arrays.toString((short[]) value));
+ }
+ else if (value instanceof int[])
+ {
+ appendInBraces(string, Arrays.toString((int[]) value));
+ }
+ else if (value instanceof long[])
+ {
+ appendInBraces(string, Arrays.toString((long[]) value));
+ }
+ else if (value instanceof float[])
+ {
+ appendInBraces(string, Arrays.toString((float[]) value));
+ }
+ else if (value instanceof double[])
+ {
+ appendInBraces(string, Arrays.toString((double[]) value));
+ }
+ else if (value instanceof char[])
+ {
+ appendInBraces(string, Arrays.toString((char[]) value));
+ }
+ else if (value instanceof String[])
+ {
+ String[] strings = (String[]) value;
+ String[] quoted = new String[strings.length];
+ for (int j = 0; j < strings.length; j++)
+ {
+ quoted[j] = "\"" + strings[j] + "\"";
+ }
+ appendInBraces(string, Arrays.toString(quoted));
+ }
+ else if (value instanceof Class<?>[])
+ {
+ Class<?>[] classes = (Class<?>[]) value;
+ String[] names = new String[classes.length];
+ for (int j = 0; j < classes.length; j++)
+ {
+ names[j] = classes[j].getName() + ".class";
+ }
+ appendInBraces(string, Arrays.toString(names));
+ }
+ else if (value instanceof Object[])
+ {
+ appendInBraces(string, Arrays.toString((Object[]) value));
+ }
+ else if (value instanceof String)
+ {
+ string.append('"').append(value).append('"');
+ }
+ else if (value instanceof Class<?>)
+ {
+ string.append(((Class<?>) value).getName()).append(".class");
+ }
+ else
+ {
+ string.append(value);
+ }
+ if (i < annotationType.getDeclaredMethods().length - 1)
+ {
+ string.append(", ");
+ }
+ }
+ return string.append(')').toString();
+ }
+
+ private void appendInBraces(StringBuilder buf, String s)
+ {
+ buf.append('{').append(s.substring(1, s.length() - 1)).append('}');
+ }
+
+ @Override
+ public boolean equals(Object other)
+ {
+ if (other instanceof Annotation)
+ {
+ Annotation that = (Annotation) other;
+ if (this.annotationType.equals(that.annotationType()))
+ {
+ for (Method member : annotationType.getDeclaredMethods())
+ {
+ Object thisValue = memberValues.get(member.getName());
+ Object thatValue = invoke(member, that);
+ if (thisValue instanceof byte[] && thatValue instanceof byte[])
+ {
+ if (!Arrays.equals((byte[]) thisValue, (byte[]) thatValue))
+ return false;
+ }
+ else if (thisValue instanceof short[]
+ && thatValue instanceof short[])
+ {
+ if (!Arrays.equals((short[]) thisValue, (short[]) thatValue))
+ return false;
+ }
+ else if (thisValue instanceof int[]
+ && thatValue instanceof int[])
+ {
+ if (!Arrays.equals((int[]) thisValue, (int[]) thatValue))
+ return false;
+ }
+ else if (thisValue instanceof long[]
+ && thatValue instanceof long[])
+ {
+ if (!Arrays.equals((long[]) thisValue, (long[]) thatValue))
+ return false;
+ }
+ else if (thisValue instanceof float[]
+ && thatValue instanceof float[])
+ {
+ if (!Arrays.equals((float[]) thisValue, (float[]) thatValue))
+ return false;
+ }
+ else if (thisValue instanceof double[]
+ && thatValue instanceof double[])
+ {
+ if (!Arrays
+ .equals((double[]) thisValue, (double[]) thatValue))
+ return false;
+ }
+ else if (thisValue instanceof char[]
+ && thatValue instanceof char[])
+ {
+ if (!Arrays.equals((char[]) thisValue, (char[]) thatValue))
+ return false;
+ }
+ else if (thisValue instanceof boolean[]
+ && thatValue instanceof boolean[])
+ {
+ if (!Arrays.equals((boolean[]) thisValue,
+ (boolean[]) thatValue))
+ return false;
+ }
+ else if (thisValue instanceof Object[]
+ && thatValue instanceof Object[])
+ {
+ if (!Arrays
+ .equals((Object[]) thisValue, (Object[]) thatValue))
+ return false;
+ }
+ else
+ {
+ if (!thisValue.equals(thatValue))
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hashCode = 0;
+ for (Method member : annotationType.getDeclaredMethods())
+ {
+ int memberNameHashCode = 127 * member.getName().hashCode();
+ Object value = memberValues.get(member.getName());
+ int memberValueHashCode;
+ if (value instanceof boolean[])
+ {
+ memberValueHashCode = Arrays.hashCode((boolean[]) value);
+ }
+ else if (value instanceof short[])
+ {
+ memberValueHashCode = Arrays.hashCode((short[]) value);
+ }
+ else if (value instanceof int[])
+ {
+ memberValueHashCode = Arrays.hashCode((int[]) value);
+ }
+ else if (value instanceof long[])
+ {
+ memberValueHashCode = Arrays.hashCode((long[]) value);
+ }
+ else if (value instanceof float[])
+ {
+ memberValueHashCode = Arrays.hashCode((float[]) value);
+ }
+ else if (value instanceof double[])
+ {
+ memberValueHashCode = Arrays.hashCode((double[]) value);
+ }
+ else if (value instanceof byte[])
+ {
+ memberValueHashCode = Arrays.hashCode((byte[]) value);
+ }
+ else if (value instanceof char[])
+ {
+ memberValueHashCode = Arrays.hashCode((char[]) value);
+ }
+ else if (value instanceof Object[])
+ {
+ memberValueHashCode = Arrays.hashCode((Object[]) value);
+ }
+ else
+ {
+ memberValueHashCode = value.hashCode();
+ }
+ hashCode += memberNameHashCode ^ memberValueHashCode;
+ }
+ return hashCode;
+ }
+
+ private static Object invoke(Method method, Object instance)
+ {
+ try
+ {
+ if (!method.isAccessible())
+ method.setAccessible(true);
+ return method.invoke(instance);
+ }
+ catch (IllegalArgumentException e)
+ {
+ throw new RuntimeException("Error checking value of member method "
+ + method.getName() + " on " + method.getDeclaringClass(), e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new RuntimeException("Error checking value of member method "
+ + method.getName() + " on " + method.getDeclaringClass(), e);
+ }
+ catch (InvocationTargetException e)
+ {
+ throw new RuntimeException("Error checking value of member method "
+ + method.getName() + " on " + method.getDeclaringClass(), e);
+ }
+ }
+}
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 07:00:40 UTC (rev 11707)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java 2009-12-01 10:53:56 UTC (rev 11708)
@@ -3,18 +3,26 @@
import java.io.StringReader;
import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
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.Literal;
import org.jboss.seam.remoting.annotationparser.syntaxtree.MarkerAnnotation;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.MemberValue;
import org.jboss.seam.remoting.annotationparser.syntaxtree.MemberValuePair;
+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;
import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeToken;
import org.jboss.seam.remoting.annotationparser.syntaxtree.NormalAnnotation;
@@ -28,40 +36,42 @@
* @author Shane Bryzak
*/
public class AnnotationsParser extends DepthFirstVisitor
-{
- public enum AnnotationType { MARKER, SINGLE_MEMBER, NORMAL }
-
+{
protected class AnnotationMetadata
{
- private AnnotationType type;
- private String name;
+ private Class<? extends Annotation> annotationType;
+ private Map<String,Object> memberValues = new HashMap<String,Object>();
- public AnnotationMetadata(AnnotationType type, String name)
+ public AnnotationMetadata(String name)
{
- this.type = type;
- this.name = name;
+ this.annotationType = calcAnnotationType(name, beanType);
+ }
+
+ public void addMemberValue(String name, Object value)
+ {
+ memberValues.put(name, value);
}
- public AnnotationType getType()
+ public Map<String,Object> getMemberValues()
{
- return type;
+ return memberValues;
}
- public String getName()
+ public Class<? extends Annotation> getAnnotationType()
{
- return name;
+ return annotationType;
}
}
-
+
+ private Class<?> beanType;
private List<AnnotationMetadata> meta = new ArrayList<AnnotationMetadata>();
- private AnnotationMetadata currentAnnotation;
-
private Annotation[] annotations;
@SuppressWarnings("unchecked")
public AnnotationsParser(Class<?> beanType, String declaration)
{
+ this.beanType = beanType;
// TODO cache the results somewhere
AnnotationParser parser = new AnnotationParser(new StringReader(declaration));
@@ -82,12 +92,11 @@
for (int i = 0; i < meta.size(); i++)
{
AnnotationMetadata ann = meta.get(i);
- Class<?> annotationType = calcAnnotationType(ann.getName(), beanType);
InvocationHandler handler = new AnnotationInvocationHandler(
- (Class<? extends Annotation>) annotationType, null);
+ (Class<? extends Annotation>) ann.getAnnotationType(), ann.getMemberValues());
annotations[i] = (Annotation) Proxy.newProxyInstance(
- annotationType.getClassLoader(),
- new Class[] {annotationType}, handler);
+ ann.getAnnotationType().getClassLoader(),
+ new Class[] {ann.getAnnotationType()}, handler);
}
meta = null;
@@ -123,45 +132,146 @@
@Override
public void visit(AnnotationsUnit node)
{
+ List<org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation> annotations =
+ new ArrayList<org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation>();
+
+ NodeOptional n = (NodeOptional) node.f0;
+ if (n.present())
+ {
+ if (n.node instanceof NodeSequence)
+ {
+ NodeSequence ns = (NodeSequence) n.node;
+ {
+ for (Node nsNode : ns.nodes)
+ {
+ if (nsNode instanceof org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation)
+ {
+ annotations.add((org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation) nsNode);
+ }
+ else if (nsNode instanceof NodeListOptional)
+ {
+ NodeListOptional nlo = (NodeListOptional) nsNode;
+ if (nlo.present())
+ {
+ for (Node nloNode : nlo.nodes)
+ {
+ if (nloNode instanceof org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation)
+ {
+ annotations.add((org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation) nloNode);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ for (org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation a : annotations)
+ {
+ processAnnotation(a);
+ }
+
super.visit(node);
}
- @Override
- public void visit(org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation node)
- {
- Node choice = node.f0.choice;
-
- AnnotationType type = null;
- Name name = null;
-
- if (choice instanceof MarkerAnnotation)
+ private void processAnnotation(org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation node)
+ {
+ if (node.f0.choice instanceof MarkerAnnotation)
{
- type = AnnotationType.MARKER;
- name = ((MarkerAnnotation) choice).f1;
+ meta.add(new AnnotationMetadata(extractName(((MarkerAnnotation) node.f0.choice).f1)));
}
- else if (choice instanceof NormalAnnotation)
+ else if (node.f0.choice instanceof NormalAnnotation)
{
- type = AnnotationType.NORMAL;
- name = ((NormalAnnotation) choice).f1;
+ NormalAnnotation ann = (NormalAnnotation) node.f0.choice;
+ AnnotationMetadata metadata = new AnnotationMetadata(extractName(ann.f1));
+
+ if (ann.f3.present() && ann.f3.node instanceof MemberValuePairs)
+ {
+ MemberValuePairs mvp = (MemberValuePairs) ann.f3.node;
+ extractMemberValue(metadata, mvp.f0.f0.tokenImage, mvp.f0.f2);
+
+ if (mvp.f1.present())
+ {
+ for (Node n : mvp.f1.nodes)
+ {
+ if (n instanceof MemberValuePair)
+ {
+ MemberValuePair p = (MemberValuePair) n;
+ extractMemberValue(metadata, p.f0.tokenImage, p.f2);
+ }
+ }
+ }
+ }
+ meta.add(metadata);
}
- else if (choice instanceof SingleMemberAnnotation)
+ else if (node.f0.choice instanceof SingleMemberAnnotation)
{
- type = AnnotationType.SINGLE_MEMBER;
- name = ((SingleMemberAnnotation) choice).f1;
+ AnnotationMetadata metadata = new AnnotationMetadata(
+ extractName(((SingleMemberAnnotation) node.f0.choice).f1));
+ extractMemberValue(metadata, "value", ((SingleMemberAnnotation) node.f0.choice).f3);
+ meta.add(metadata);
}
- currentAnnotation = new AnnotationMetadata(type, extractName(name));
- meta.add(currentAnnotation);
+ }
+
+ private void extractMemberValue(AnnotationMetadata metadata, String memberName,
+ MemberValue memberValue)
+ {
+ Class<?> memberType = null;
- super.visit(node);
+ for (Method m : metadata.getAnnotationType().getMethods())
+ {
+ if (memberName.equals(m.getName()))
+ {
+ memberType = m.getReturnType();
+ break;
+ }
+ }
+
+ if (memberType == null)
+ {
+ throw new RuntimeException("Annotation member " + memberName +
+ " not found on annotation type " + metadata.getAnnotationType().getName());
+ }
+
+ Object value = null;
+
+ switch (memberValue.f0.which)
+ {
+ // TODO add the missing conversions
+ case 0: // Annotation
+ break;
+ case 1: // MemberValueArray
+ break;
+ case 2: // Literal
+ value = convertLiteral((Literal) memberValue.f0.choice);
+ break;
+ }
+
+ metadata.addMemberValue(memberName, value);
}
- @Override
- public void visit(MemberValuePair node)
+ 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 3: // <STRING_LITERAL>
+ String value = ((NodeToken) literal.f0.choice).tokenImage;
+ return value.substring(1, value.length() - 1); // strip the double quotes
+ case 4: // BooleanLiteral()
+ case 5: // NullLiteral()
+ }
+ return null;
}
-
+
private String extractName(Name name)
{
StringBuilder sb = new StringBuilder();
15 years
Seam SVN: r11707 - in modules/trunk/remoting/src/main: resources/org/jboss/seam/remoting and 1 other directory.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-12-01 02:00:40 -0500 (Tue, 01 Dec 2009)
New Revision: 11707
Removed:
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationLiteralHandler.java
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ReflectiveAnnotationLiteral.java
Modified:
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/ExecutionHandler.java
modules/trunk/remoting/src/main/resources/org/jboss/seam/remoting/remote.js
Log:
some cleanup
Deleted: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationLiteralHandler.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationLiteralHandler.java 2009-12-01 00:42:53 UTC (rev 11706)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationLiteralHandler.java 2009-12-01 07:00:40 UTC (rev 11707)
@@ -1,31 +0,0 @@
-package org.jboss.seam.remoting;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.util.Map;
-
-/**
- *
- * @author Shane Bryzak
- */
-public class AnnotationLiteralHandler implements InvocationHandler
-{
- private Class<? extends Annotation> annotationClass;
- private Map<String,Object> memberValues;
-
- public AnnotationLiteralHandler(Class<? extends Annotation> annotationClass,
- Map<String,Object> memberValues)
- {
- this.annotationClass = annotationClass;
- this.memberValues = memberValues;
- }
-
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable
- {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
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 00:42:53 UTC (rev 11706)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java 2009-12-01 07:00:40 UTC (rev 11707)
@@ -2,12 +2,16 @@
import java.io.StringReader;
import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.List;
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.MarkerAnnotation;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.MemberValuePair;
import org.jboss.seam.remoting.annotationparser.syntaxtree.Name;
import org.jboss.seam.remoting.annotationparser.syntaxtree.Node;
import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeListOptional;
@@ -55,6 +59,7 @@
private Annotation[] annotations;
+ @SuppressWarnings("unchecked")
public AnnotationsParser(Class<?> beanType, String declaration)
{
// TODO cache the results somewhere
@@ -71,6 +76,21 @@
throw new IllegalArgumentException(
"Error while parsing annotation declaration: " + declaration);
}
+
+ annotations = new Annotation[meta.size()];
+
+ for (int i = 0; i < meta.size(); i++)
+ {
+ AnnotationMetadata ann = meta.get(i);
+ Class<?> annotationType = calcAnnotationType(ann.getName(), beanType);
+ InvocationHandler handler = new AnnotationInvocationHandler(
+ (Class<? extends Annotation>) annotationType, null);
+ annotations[i] = (Annotation) Proxy.newProxyInstance(
+ annotationType.getClassLoader(),
+ new Class[] {annotationType}, handler);
+ }
+
+ meta = null;
}
public Annotation[] getAnnotations()
@@ -78,7 +98,35 @@
return annotations;
}
+ @SuppressWarnings("unchecked")
+ private Class<? extends Annotation> calcAnnotationType(String name, Class<?> beanType)
+ {
+ try
+ {
+ return (Class<? extends Annotation>) Class.forName(name);
+ }
+ catch (ClassNotFoundException e)
+ {
+ // Iterate through the annotations on the bean type and look for a simple name match
+ for (Annotation beanAnnotation : beanType.getAnnotations())
+ {
+ if (name.equals(beanAnnotation.annotationType().getSimpleName()))
+ {
+ return beanAnnotation.annotationType();
+ }
+ }
+
+ return null;
+ }
+ }
+
@Override
+ public void visit(AnnotationsUnit node)
+ {
+ super.visit(node);
+ }
+
+ @Override
public void visit(org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation node)
{
Node choice = node.f0.choice;
@@ -101,13 +149,19 @@
type = AnnotationType.SINGLE_MEMBER;
name = ((SingleMemberAnnotation) choice).f1;
}
+
+ currentAnnotation = new AnnotationMetadata(type, extractName(name));
+ meta.add(currentAnnotation);
- super.visit(node);
-
- currentAnnotation = new AnnotationMetadata(type, extractName(name));
- meta.add(currentAnnotation);
+ super.visit(node);
}
+ @Override
+ public void visit(MemberValuePair node)
+ {
+
+ }
+
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 00:42:53 UTC (rev 11706)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/Call.java 2009-12-01 07:00:40 UTC (rev 11707)
@@ -45,7 +45,7 @@
private Bean<?> targetBean = null;
public Call(BeanManager beanManager, String id, String beanName,
- String qualifierVal, String methodName)
+ String qualifiers, String methodName)
{
this.beanManager = beanManager;
this.id = id;
@@ -60,10 +60,10 @@
{
Class<?> beanType = Class.forName(beanName);
- Annotation[] qualifiers = qualifierVal != null && !qualifierVal.isEmpty() ?
- new AnnotationsParser(beanType, qualifierVal).getAnnotations() : null;
+ Annotation[] q = qualifiers != null && !qualifiers.isEmpty() ?
+ new AnnotationsParser(beanType, qualifiers).getAnnotations() : null;
- beans = beanManager.getBeans(beanType, qualifiers);
+ beans = beanManager.getBeans(beanType, q);
}
catch (ClassNotFoundException ex)
{
Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ExecutionHandler.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ExecutionHandler.java 2009-12-01 00:42:53 UTC (rev 11706)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ExecutionHandler.java 2009-12-01 07:00:40 UTC (rev 11707)
@@ -145,10 +145,14 @@
for (Element e : callElements)
{
+ Element targetNode = e.element("target");
+ Element qualifiersNode = e.element("qualifiers");
+ Element methodNode = e.element("method");
+
Call call = new Call(beanManager, e.attributeValue("id"),
- e.attributeValue("component"),
- e.attributeValue("qualifiers"),
- e.attributeValue("method"));
+ targetNode.getText(),
+ qualifiersNode != null ? qualifiersNode.getText() : null,
+ methodNode.getText());
// First reconstruct all the references
Element refsNode = e.element("refs");
Deleted: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ReflectiveAnnotationLiteral.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ReflectiveAnnotationLiteral.java 2009-12-01 00:42:53 UTC (rev 11706)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ReflectiveAnnotationLiteral.java 2009-12-01 07:00:40 UTC (rev 11707)
@@ -1,28 +0,0 @@
-package org.jboss.seam.remoting;
-
-import java.io.StringReader;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Proxy;
-import java.util.Map;
-
-import org.jboss.seam.remoting.annotationparser.AnnotationParser;
-
-public class ReflectiveAnnotationLiteral
-{
- private Class<? extends Annotation> annotationType;
- private Map<String,Object> memberValues;
-
- public ReflectiveAnnotationLiteral(String declaration)
- {
- AnnotationParser parser = new AnnotationParser(new StringReader(declaration));
-
- //this.annotationType = (Class<? extends Annotation>) Class.forName(annotationType));
- }
-
- public <T extends Annotation> T getAnnotation()
- {
- return (T) Proxy.newProxyInstance(annotationType.getClassLoader(),
- new Class[] { annotationType },
- new AnnotationLiteralHandler(annotationType, memberValues));
- }
-}
Modified: modules/trunk/remoting/src/main/resources/org/jboss/seam/remoting/remote.js
===================================================================
--- modules/trunk/remoting/src/main/resources/org/jboss/seam/remoting/remote.js 2009-12-01 00:42:53 UTC (rev 11706)
+++ modules/trunk/remoting/src/main/resources/org/jboss/seam/remoting/remote.js 2009-12-01 07:00:40 UTC (rev 11707)
@@ -482,25 +482,23 @@
if (!callback)
callback = component.__callback[methodName];
- var data = "<call component=\"";
- data += Seam.Component.getComponentType(component).__name;
+ var data = "<call id=\"" + callId + "\">\n";
+ data += "<target>" + Seam.Component.getComponentType(component).__name + "</target>";
if (component.__qualifiers != null)
{
- data += "\" qualifiers=\"";
+ data += "<qualifiers>";
for (var i = 0; i < component.__qualifiers.length; i++)
{
data += component.__qualifiers[i];
if (i < component.__qualifiers.length - 1) data += ",";
}
+
+ data += "</qualifiers>";
}
- data += "\" method=\"";
- data += methodName;
- data += "\" id=\"";
- data += callId;
- data += "\">\n";
+ data += "<method>" + methodName + "</method>";
// Add parameters
data += "<params>";
15 years
Seam SVN: r11706 - modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-11-30 19:42:53 -0500 (Mon, 30 Nov 2009)
New Revision: 11706
Removed:
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/jtb.out.jj
Log:
oops, remove jtb stuff
Deleted: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/jtb.out.jj
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/jtb.out.jj 2009-12-01 00:35:25 UTC (rev 11705)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/jtb.out.jj 2009-12-01 00:42:53 UTC (rev 11706)
@@ -1,640 +0,0 @@
-//
-// Generated by JTB 1.3.2
-//
-
-options {
- JAVA_UNICODE_ESCAPE = true;
- ERROR_REPORTING = false;
- STATIC = false;
-}
-
-PARSER_BEGIN(AnnotationParser)
-package org.jboss.seam.remoting.annotationparser;
-
-import java.io.*;
-import syntaxtree.*;
-import java.util.Vector;
-
-
-public class AnnotationParser
-{
- public AnnotationParser(String fileName)
- {
- this(System.in);
- try
- {
- ReInit(new FileInputStream(new File(fileName)));
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- public static void main(String args[])
- {
- AnnotationParser parser;
- if ( args.length == 0 )
- {
- System.out.println("AnnotationParser: Reading from standard input . . .");
- parser = new AnnotationParser(System.in);
- }
- else
- if ( args.length == 1 )
- {
- System.out.println("AnnotationParser: Reading from file " + args[0]+ " . . .");
- try
- {
- parser = new AnnotationParser(new java.io.FileInputStream(args[0]));
- }
- catch (java.io.FileNotFoundException e)
- {
- System.out.println("AnnotationParser: File " + args[0]+ " not found.");
- return;
- }
- }
- else
- {
- System.out.println("AnnotationParser: Usage is one of:");
- System.out.println(" java AnnotationParser < inputfile");
- System.out.println("OR");
- System.out.println(" java AnnotationParser inputfile");
- return;
- }
- try
- {
- parser.AnnotationsUnit();
- System.out.println("AnnotationParser: Annotations parsed successfully.");
- }
- catch (ParseException e)
- {
- System.out.println(e.getMessage());
- System.out.println("AnnotationParser: Encountered errors during parse.");
- }
- }
-}
-
-class JTBToolkit {
- static NodeToken makeNodeToken(Token t) {
- return new NodeToken(t.image.intern(), t.kind, t.beginLine, t.beginColumn, t.endLine, t.endColumn);
- }
-}
-
-
-PARSER_END(AnnotationParser)
-
-SKIP :
-{
- " "
- | "\t"
- | "\n"
- | "\r"
- | "\f"
-}
-
-MORE :
-{
- "//" : IN_SINGLE_LINE_COMMENT
- | <"/**" ~["/"]>
- {
- input_stream.backup(1);
- } : IN_FORMAL_COMMENT
- | "/*" : IN_MULTI_LINE_COMMENT
-}
-
-<IN_SINGLE_LINE_COMMENT> SPECIAL_TOKEN :
-{
- <SINGLE_LINE_COMMENT: "\n" | "\r" | "\r\n"> : DEFAULT
-}
-
-<IN_FORMAL_COMMENT> SPECIAL_TOKEN :
-{
- <FORMAL_COMMENT: "*/"> : DEFAULT
-}
-
-<IN_MULTI_LINE_COMMENT> SPECIAL_TOKEN :
-{
- <MULTI_LINE_COMMENT: "*/"> : DEFAULT
-}
-
-<IN_SINGLE_LINE_COMMENT, IN_FORMAL_COMMENT, IN_MULTI_LINE_COMMENT> MORE :
-{
- <~[]>
-}
-
-TOKEN :
-{
- <ABSTRACT: "abstract">
- | <ASSERT: "assert">
- | <BOOLEAN: "boolean">
- | <BREAK: "break">
- | <BYTE: "byte">
- | <CASE: "case">
- | <CATCH: "catch">
- | <CHAR: "char">
- | <CLASS: "class">
- | <CONST: "const">
- | <CONTINUE: "continue">
- | <_DEFAULT: "default">
- | <DO: "do">
- | <DOUBLE: "double">
- | <ELSE: "else">
- | <ENUM: "enum">
- | <EXTENDS: "extends">
- | <FALSE: "false">
- | <FINAL: "final">
- | <FINALLY: "finally">
- | <FLOAT: "float">
- | <FOR: "for">
- | <GOTO: "goto">
- | <IF: "if">
- | <IMPLEMENTS: "implements">
- | <IMPORT: "import">
- | <INSTANCEOF: "instanceof">
- | <INT: "int">
- | <INTERFACE: "interface">
- | <LONG: "long">
- | <NATIVE: "native">
- | <NEW: "new">
- | <NULL: "null">
- | <PACKAGE: "package">
- | <PRIVATE: "private">
- | <PROTECTED: "protected">
- | <PUBLIC: "public">
- | <RETURN: "return">
- | <SHORT: "short">
- | <STATIC: "static">
- | <STRICTFP: "strictfp">
- | <SUPER: "super">
- | <SWITCH: "switch">
- | <SYNCHRONIZED: "synchronized">
- | <THIS: "this">
- | <THROW: "throw">
- | <THROWS: "throws">
- | <TRANSIENT: "transient">
- | <TRUE: "true">
- | <TRY: "try">
- | <VOID: "void">
- | <VOLATILE: "volatile">
- | <WHILE: "while">
-}
-
-TOKEN :
-{
- <INTEGER_LITERAL: <DECIMAL_LITERAL> (["l", "L"])? | <HEX_LITERAL> (["l", "L"])? | <OCTAL_LITERAL> (["l", "L"])?>
- | <#DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])*>
- | <#HEX_LITERAL: "0" ["x", "X"] (["0"-"9", "a"-"f", "A"-"F"])+>
- | <#OCTAL_LITERAL: "0" (["0"-"7"])*>
- | <FLOATING_POINT_LITERAL: (["0"-"9"])+ "." (["0"-"9"])* (<EXPONENT>)? (["f", "F", "d", "D"])? | "." (["0"-"9"])+ (<EXPONENT>)? (["f", "F", "d", "D"])? | (["0"-"9"])+ <EXPONENT> (["f", "F", "d", "D"])? | (["0"-"9"])+ (<EXPONENT>)? ["f", "F", "d", "D"]>
- | <#EXPONENT: ["e", "E"] (["+", "-"])? (["0"-"9"])+>
- | <CHARACTER_LITERAL: "'" ((~["'", "\\", "\n", "\r"]) | ("\\" (["n", "t", "b", "r", "f", "\\", "'", "\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"]))) "'">
- | <STRING_LITERAL: "\"" ((~["\"", "\\", "\n", "\r"]) | ("\\" (["n", "t", "b", "r", "f", "\\", "'", "\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"])))* "\"">
-}
-
-TOKEN :
-{
- <IDENTIFIER: <LETTER> (<LETTER> | <DIGIT>)*>
- | <#LETTER: ["$", "A"-"Z", "_", "a"-"z", "\u00c0"-"\u00d6", "\u00d8"-"\u00f6", "\u00f8"-"\u00ff", "\u0100"-"\u1fff", "\u3040"-"\u318f", "\u3300"-"\u337f", "\u3400"-"\u3d2d", "\u4e00"-"\u9fff", "\uf900"-"\ufaff"]>
- | <#DIGIT: ["0"-"9", "\u0660"-"\u0669", "\u06f0"-"\u06f9", "\u0966"-"\u096f", "\u09e6"-"\u09ef", "\u0a66"-"\u0a6f", "\u0ae6"-"\u0aef", "\u0b66"-"\u0b6f", "\u0be7"-"\u0bef", "\u0c66"-"\u0c6f", "\u0ce6"-"\u0cef", "\u0d66"-"\u0d6f", "\u0e50"-"\u0e59", "\u0ed0"-"\u0ed9", "\u1040"-"\u1049"]>
-}
-
-TOKEN :
-{
- <LPAREN: "(">
- | <RPAREN: ")">
- | <LBRACE: "{">
- | <RBRACE: "}">
- | <LBRACKET: "[">
- | <RBRACKET: "]">
- | <SEMICOLON: ";">
- | <COMMA: ",">
- | <DOT: ".">
- | <AT: "@">
-}
-
-TOKEN :
-{
- <ASSIGN: "=">
- | <LT: "<">
- | <BANG: "!">
- | <TILDE: "~">
- | <HOOK: "?">
- | <COLON: ":">
- | <EQ: "==">
- | <LE: "<=">
- | <GE: ">=">
- | <NE: "!=">
- | <SC_OR: "||">
- | <SC_AND: "&&">
- | <INCR: "++">
- | <DECR: "--">
- | <PLUS: "+">
- | <MINUS: "-">
- | <STAR: "*">
- | <SLASH: "/">
- | <BIT_AND: "&">
- | <BIT_OR: "|">
- | <XOR: "^">
- | <REM: "%">
- | <LSHIFT: "<<">
- | <PLUSASSIGN: "+=">
- | <MINUSASSIGN: "-=">
- | <STARASSIGN: "*=">
- | <SLASHASSIGN: "/=">
- | <ANDASSIGN: "&=">
- | <ORASSIGN: "|=">
- | <XORASSIGN: "^=">
- | <REMASSIGN: "%=">
- | <LSHIFTASSIGN: "<<=">
- | <RSIGNEDSHIFTASSIGN: ">>=">
- | <RUNSIGNEDSHIFTASSIGN: ">>>=">
- | <ELLIPSIS: "...">
-}
-
-AnnotationsUnit AnnotationsUnit() :
-{
- NodeOptional n0 = new NodeOptional();
- NodeSequence n1;
- Annotation n2;
- NodeListOptional n3;
- NodeSequence n4;
- NodeToken n5;
- Token n6;
- Annotation n7;
-
-
-}
-{
- (
- { n3 = new NodeListOptional(); }
- { n1 = new NodeSequence(2); }
- n2=Annotation()
- { n1.addNode(n2); }
- (
- { n4 = new NodeSequence(2); }
- n6="," { n5 = JTBToolkit.makeNodeToken(n6); }
- { n4.addNode(n5); }
- n7=Annotation()
- { n4.addNode(n7); }
- { n3.addNode(n4); }
- )*
- { n3.nodes.trimToSize(); }
- { n1.addNode(n3); }
- { n0.addNode(n1); }
- )?
-
- { return new AnnotationsUnit(n0); }
-}
-
-PrimitiveType PrimitiveType() :
-{
- NodeChoice n0;
- NodeToken n1;
- Token n2;
- NodeToken n3;
- Token n4;
- NodeToken n5;
- Token n6;
- NodeToken n7;
- Token n8;
- NodeToken n9;
- Token n10;
- NodeToken n11;
- Token n12;
- NodeToken n13;
- Token n14;
- NodeToken n15;
- Token n16;
-
-
-}
-{
- (
- n2="boolean" { n1 = JTBToolkit.makeNodeToken(n2); }
- { n0 = new NodeChoice(n1, 0); }
- |
- n4="char" { n3 = JTBToolkit.makeNodeToken(n4); }
- { n0 = new NodeChoice(n3, 1); }
- |
- n6="byte" { n5 = JTBToolkit.makeNodeToken(n6); }
- { n0 = new NodeChoice(n5, 2); }
- |
- n8="short" { n7 = JTBToolkit.makeNodeToken(n8); }
- { n0 = new NodeChoice(n7, 3); }
- |
- n10="int" { n9 = JTBToolkit.makeNodeToken(n10); }
- { n0 = new NodeChoice(n9, 4); }
- |
- n12="long" { n11 = JTBToolkit.makeNodeToken(n12); }
- { n0 = new NodeChoice(n11, 5); }
- |
- n14="float" { n13 = JTBToolkit.makeNodeToken(n14); }
- { n0 = new NodeChoice(n13, 6); }
- |
- n16="double" { n15 = JTBToolkit.makeNodeToken(n16); }
- { n0 = new NodeChoice(n15, 7); }
- )
-
- { return new PrimitiveType(n0); }
-}
-
-Name Name() :
-{
- NodeToken n0;
- Token n1;
- NodeListOptional n2 = new NodeListOptional();
- NodeSequence n3;
- NodeToken n4;
- Token n5;
- NodeToken n6;
- Token n7;
-
-
-}
-{
- n1=<IDENTIFIER> { n0 = JTBToolkit.makeNodeToken(n1); }
- (
- { n3 = new NodeSequence(2); }
- n5="." { n4 = JTBToolkit.makeNodeToken(n5); }
- { n3.addNode(n4); }
- n7=<IDENTIFIER> { n6 = JTBToolkit.makeNodeToken(n7); }
- { n3.addNode(n6); }
- { n2.addNode(n3); }
- )*
- { n2.nodes.trimToSize(); }
-
- { return new Name(n0,n2); }
-}
-
-Literal Literal() :
-{
- NodeChoice n0;
- NodeToken n1;
- Token n2;
- NodeToken n3;
- Token n4;
- NodeToken n5;
- Token n6;
- NodeToken n7;
- Token n8;
- BooleanLiteral n9;
- NullLiteral n10;
-
-
-}
-{
- (
- n2=<INTEGER_LITERAL> { n1 = JTBToolkit.makeNodeToken(n2); }
- { n0 = new NodeChoice(n1, 0); }
- |
- n4=<FLOATING_POINT_LITERAL> { n3 = JTBToolkit.makeNodeToken(n4); }
- { n0 = new NodeChoice(n3, 1); }
- |
- n6=<CHARACTER_LITERAL> { n5 = JTBToolkit.makeNodeToken(n6); }
- { n0 = new NodeChoice(n5, 2); }
- |
- n8=<STRING_LITERAL> { n7 = JTBToolkit.makeNodeToken(n8); }
- { n0 = new NodeChoice(n7, 3); }
- |
- n9=BooleanLiteral()
- { n0 = new NodeChoice(n9, 4); }
- |
- n10=NullLiteral()
- { n0 = new NodeChoice(n10, 5); }
- )
-
- { return new Literal(n0); }
-}
-
-BooleanLiteral BooleanLiteral() :
-{
- NodeChoice n0;
- NodeToken n1;
- Token n2;
- NodeToken n3;
- Token n4;
-
-
-}
-{
- (
- n2="true" { n1 = JTBToolkit.makeNodeToken(n2); }
- { n0 = new NodeChoice(n1, 0); }
- |
- n4="false" { n3 = JTBToolkit.makeNodeToken(n4); }
- { n0 = new NodeChoice(n3, 1); }
- )
-
- { return new BooleanLiteral(n0); }
-}
-
-NullLiteral NullLiteral() :
-{
- NodeToken n0;
- Token n1;
-
-
-}
-{
- n1="null" { n0 = JTBToolkit.makeNodeToken(n1); }
-
- { return new NullLiteral(n0); }
-}
-
-Annotation Annotation() :
-{
- NodeChoice n0;
- NormalAnnotation n1;
- SingleMemberAnnotation n2;
- MarkerAnnotation n3;
-
-
-}
-{
- (
- LOOKAHEAD("@" Name() "(" ( <IDENTIFIER> "=" | ")" ))
- n1=NormalAnnotation()
- { n0 = new NodeChoice(n1, 0); }
- |
- LOOKAHEAD("@" Name() "(")
- n2=SingleMemberAnnotation()
- { n0 = new NodeChoice(n2, 1); }
- |
- n3=MarkerAnnotation()
- { n0 = new NodeChoice(n3, 2); }
- )
-
- { return new Annotation(n0); }
-}
-
-NormalAnnotation NormalAnnotation() :
-{
- NodeToken n0;
- Token n1;
- Name n2;
- NodeToken n3;
- Token n4;
- NodeOptional n5 = new NodeOptional();
- MemberValuePairs n6;
- NodeToken n7;
- Token n8;
-
-
-}
-{
- n1="@" { n0 = JTBToolkit.makeNodeToken(n1); }
- n2=Name()
- n4="(" { n3 = JTBToolkit.makeNodeToken(n4); }
- (
- n6=MemberValuePairs()
- { n5.addNode(n6); }
- )?
- n8=")" { n7 = JTBToolkit.makeNodeToken(n8); }
-
- { return new NormalAnnotation(n0,n2,n3,n5,n7); }
-}
-
-MarkerAnnotation MarkerAnnotation() :
-{
- NodeToken n0;
- Token n1;
- Name n2;
-
-
-}
-{
- n1="@" { n0 = JTBToolkit.makeNodeToken(n1); }
- n2=Name()
-
- { return new MarkerAnnotation(n0,n2); }
-}
-
-SingleMemberAnnotation SingleMemberAnnotation() :
-{
- NodeToken n0;
- Token n1;
- Name n2;
- NodeToken n3;
- Token n4;
- MemberValue n5;
- NodeToken n6;
- Token n7;
-
-
-}
-{
- n1="@" { n0 = JTBToolkit.makeNodeToken(n1); }
- n2=Name()
- n4="(" { n3 = JTBToolkit.makeNodeToken(n4); }
- n5=MemberValue()
- n7=")" { n6 = JTBToolkit.makeNodeToken(n7); }
-
- { return new SingleMemberAnnotation(n0,n2,n3,n5,n6); }
-}
-
-MemberValuePairs MemberValuePairs() :
-{
- MemberValuePair n0;
- NodeListOptional n1 = new NodeListOptional();
- NodeSequence n2;
- NodeToken n3;
- Token n4;
- MemberValuePair n5;
-
-
-}
-{
- n0=MemberValuePair()
- (
- { n2 = new NodeSequence(2); }
- n4="," { n3 = JTBToolkit.makeNodeToken(n4); }
- { n2.addNode(n3); }
- n5=MemberValuePair()
- { n2.addNode(n5); }
- { n1.addNode(n2); }
- )*
- { n1.nodes.trimToSize(); }
-
- { return new MemberValuePairs(n0,n1); }
-}
-
-MemberValuePair MemberValuePair() :
-{
- NodeToken n0;
- Token n1;
- NodeToken n2;
- Token n3;
- MemberValue n4;
-
-
-}
-{
- n1=<IDENTIFIER> { n0 = JTBToolkit.makeNodeToken(n1); }
- n3="=" { n2 = JTBToolkit.makeNodeToken(n3); }
- n4=MemberValue()
-
- { return new MemberValuePair(n0,n2,n4); }
-}
-
-MemberValue MemberValue() :
-{
- NodeChoice n0;
- Annotation n1;
- MemberValueArrayInitializer n2;
- Literal n3;
-
-
-}
-{
- (
- n1=Annotation()
- { n0 = new NodeChoice(n1, 0); }
- |
- n2=MemberValueArrayInitializer()
- { n0 = new NodeChoice(n2, 1); }
- |
- n3=Literal()
- { n0 = new NodeChoice(n3, 2); }
- )
-
- { return new MemberValue(n0); }
-}
-
-MemberValueArrayInitializer MemberValueArrayInitializer() :
-{
- NodeToken n0;
- Token n1;
- MemberValue n2;
- NodeListOptional n3 = new NodeListOptional();
- NodeSequence n4;
- NodeToken n5;
- Token n6;
- MemberValue n7;
- NodeOptional n8 = new NodeOptional();
- NodeToken n9;
- Token n10;
- NodeToken n11;
- Token n12;
-
-
-}
-{
- n1="{" { n0 = JTBToolkit.makeNodeToken(n1); }
- n2=MemberValue()
- (
- LOOKAHEAD(2)
- { n4 = new NodeSequence(2); }
- n6="," { n5 = JTBToolkit.makeNodeToken(n6); }
- { n4.addNode(n5); }
- n7=MemberValue()
- { n4.addNode(n7); }
- { n3.addNode(n4); }
- )*
- { n3.nodes.trimToSize(); }
- (
- n10="," { n9 = JTBToolkit.makeNodeToken(n10); }
- { n8.addNode(n9); }
- )?
- n12="}" { n11 = JTBToolkit.makeNodeToken(n12); }
-
- { return new MemberValueArrayInitializer(n0,n2,n3,n8,n11); }
-}
15 years
Seam SVN: r11705 - in modules/trunk/remoting: src/main/java/org/jboss/seam/remoting and 4 other directories.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-11-30 19:35:25 -0500 (Mon, 30 Nov 2009)
New Revision: 11705
Added:
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationLiteralHandler.java
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ReflectiveAnnotationLiteral.java
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/jtb.out.jj
modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/
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/
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
Modified:
modules/trunk/remoting/examples/helloworld/src/main/webapp/helloworld.xhtml
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/AnnotationParserTokenManager.java
modules/trunk/remoting/src/main/javacc/AnnotationParser.jj
Log:
annotation parsing
Modified: modules/trunk/remoting/examples/helloworld/src/main/webapp/helloworld.xhtml
===================================================================
--- modules/trunk/remoting/examples/helloworld/src/main/webapp/helloworld.xhtml 2009-11-30 14:23:32 UTC (rev 11704)
+++ modules/trunk/remoting/examples/helloworld/src/main/webapp/helloworld.xhtml 2009-12-01 00:35:25 UTC (rev 11705)
@@ -25,7 +25,7 @@
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", "@org.jboss.seam.remoting.examples.helloworld.HelloQualifier(foo=\"abc\")").sayHello(name, callback);
}
</script>
Added: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationLiteralHandler.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationLiteralHandler.java (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationLiteralHandler.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,31 @@
+package org.jboss.seam.remoting;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.util.Map;
+
+/**
+ *
+ * @author Shane Bryzak
+ */
+public class AnnotationLiteralHandler implements InvocationHandler
+{
+ private Class<? extends Annotation> annotationClass;
+ private Map<String,Object> memberValues;
+
+ public AnnotationLiteralHandler(Class<? extends Annotation> annotationClass,
+ Map<String,Object> memberValues)
+ {
+ this.annotationClass = annotationClass;
+ this.memberValues = memberValues;
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args)
+ throws Throwable
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Added: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/AnnotationsParser.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,137 @@
+package org.jboss.seam.remoting;
+
+import java.io.StringReader;
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.seam.remoting.annotationparser.AnnotationParser;
+import org.jboss.seam.remoting.annotationparser.ParseException;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.MarkerAnnotation;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.Name;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.Node;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeListOptional;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeSequence;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.NodeToken;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.NormalAnnotation;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.SingleMemberAnnotation;
+import org.jboss.seam.remoting.annotationparser.visitor.DepthFirstVisitor;
+
+/**
+ * Parses a comma-separated list of annotation expressions and produces an
+ * array of Annotation instances.
+ *
+ * @author Shane Bryzak
+ */
+public class AnnotationsParser extends DepthFirstVisitor
+{
+ public enum AnnotationType { MARKER, SINGLE_MEMBER, NORMAL }
+
+ protected class AnnotationMetadata
+ {
+ private AnnotationType type;
+ private String name;
+
+ public AnnotationMetadata(AnnotationType type, String name)
+ {
+ this.type = type;
+ this.name = name;
+ }
+
+ public AnnotationType getType()
+ {
+ return type;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ }
+
+ private List<AnnotationMetadata> meta = new ArrayList<AnnotationMetadata>();
+
+ private AnnotationMetadata currentAnnotation;
+
+ private Annotation[] annotations;
+
+ public AnnotationsParser(Class<?> beanType, String declaration)
+ {
+ // TODO cache the results somewhere
+
+ AnnotationParser parser = new AnnotationParser(new StringReader(declaration));
+
+ try
+ {
+ Node root = parser.AnnotationsUnit();
+ root.accept(this);
+ }
+ catch (ParseException e)
+ {
+ throw new IllegalArgumentException(
+ "Error while parsing annotation declaration: " + declaration);
+ }
+ }
+
+ public Annotation[] getAnnotations()
+ {
+ return annotations;
+ }
+
+ @Override
+ public void visit(org.jboss.seam.remoting.annotationparser.syntaxtree.Annotation node)
+ {
+ Node choice = node.f0.choice;
+
+ AnnotationType type = null;
+ Name name = null;
+
+ if (choice instanceof MarkerAnnotation)
+ {
+ type = AnnotationType.MARKER;
+ name = ((MarkerAnnotation) choice).f1;
+ }
+ else if (choice instanceof NormalAnnotation)
+ {
+ type = AnnotationType.NORMAL;
+ name = ((NormalAnnotation) choice).f1;
+ }
+ else if (choice instanceof SingleMemberAnnotation)
+ {
+ type = AnnotationType.SINGLE_MEMBER;
+ name = ((SingleMemberAnnotation) choice).f1;
+ }
+
+ super.visit(node);
+
+ currentAnnotation = new AnnotationMetadata(type, extractName(name));
+ meta.add(currentAnnotation);
+ }
+
+ private String extractName(Name name)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append(name.f0.tokenImage);
+
+ NodeListOptional nodeList = ((NodeListOptional) name.f1);
+ if (nodeList.present())
+ {
+ for (Node node : nodeList.nodes)
+ {
+ if (node instanceof NodeSequence)
+ {
+ for (Node n : ((NodeSequence) node).nodes)
+ {
+ if (n instanceof NodeToken)
+ {
+ sb.append(((NodeToken) n).tokenImage);
+ }
+ }
+ }
+ }
+ }
+
+ return sb.toString();
+ }
+}
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-11-30 14:23:32 UTC (rev 11704)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/Call.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -30,10 +30,8 @@
private BeanManager beanManager;
private String id;
- private String beanName;
- private Annotation[] qualifiers = null;
+
private String methodName;
- // private String expression;
private Throwable exception;
private List<Wrapper> params = new ArrayList<Wrapper>();
@@ -44,53 +42,41 @@
private List<String> constraints = null;
- private class AnnotationLiteral implements Annotation
- {
- private Class<? extends Annotation> annotationType;
-
- public AnnotationLiteral(Class<? extends Annotation> annotationType)
- {
- this.annotationType = annotationType;
- }
-
- public Class<? extends Annotation> annotationType()
- {
- return annotationType;
- }
- }
+ private Bean<?> targetBean = null;
- /**
- * Constructor.
- */
- @SuppressWarnings("unchecked")
public Call(BeanManager beanManager, String id, String beanName,
- String qualifiers, String methodName)
+ String qualifierVal, String methodName)
{
this.beanManager = beanManager;
this.id = id;
- this.beanName = beanName;
this.methodName = methodName;
this.context = new CallContext(beanManager);
- if (qualifiers != null && !qualifiers.isEmpty())
+ Set<Bean<?>> beans = beanManager.getBeans(beanName);
+
+ if (beans.isEmpty())
{
- String[] qs = qualifiers.split(",");
- this.qualifiers = new Annotation[qs.length];
-
- for (int i = 0; i < qs.length; i++)
+ try
{
- try
- {
- this.qualifiers[i] = new AnnotationLiteral(
- (Class<? extends Annotation>) Class.forName(qs[i]));
- }
- catch (ClassNotFoundException e)
- {
- // TODO improve this
- e.printStackTrace();
- }
+ Class<?> beanType = Class.forName(beanName);
+
+ Annotation[] qualifiers = qualifierVal != null && !qualifierVal.isEmpty() ?
+ new AnnotationsParser(beanType, qualifierVal).getAnnotations() : null;
+
+ beans = beanManager.getBeans(beanType, qualifiers);
}
- }
+ catch (ClassNotFoundException ex)
+ {
+ throw new IllegalArgumentException("Invalid bean class specified: " + beanName);
+ }
+
+ if (beans.isEmpty())
+ {
+ throw new IllegalArgumentException("Invalid bean name specified: " + beanName);
+ }
+ }
+
+ targetBean = beans.iterator().next();
}
/**
@@ -178,97 +164,43 @@
*
* @throws Exception
*/
+ @SuppressWarnings("unchecked")
public void execute() throws Exception
{
- if (beanName != null)
+ CreationalContext ctx = beanManager.createCreationalContext(targetBean);
+
+ // Create an instance of the component
+ Object instance = targetBean.create(ctx);
+
+ if (instance == null)
{
- processInvocation();
+ throw new RuntimeException(String.format(
+ "Could not create instance of bean %s",
+ targetBean.getBeanClass().getName()));
}
- }
- @SuppressWarnings("unchecked")
- private void processInvocation() throws Exception
- {
- // Find the component we're calling
- Set<Bean<?>> beans = beanManager.getBeans(beanName);
-
- if (beans.isEmpty())
+ // Find the method according to the method name and the parameter classes
+ Method m = findMethod(methodName, targetBean.getBeanClass());
+ if (m == null)
{
- // Can't find the bean by name, try looking it up by type and qualifiers
- Type beanType = Class.forName(beanName);
- beans = beanManager.getBeans(beanType, qualifiers);
-
- }
-
- if (beans.isEmpty())
+ throw new RuntimeException("No compatible method found.");
+ }
+
+ if (m.getAnnotation(WebRemote.class).exclude().length > 0)
{
- throw new RuntimeException("No such component: " + beanName);
+ constraints = Arrays.asList(m.getAnnotation(WebRemote.class).exclude());
}
- else
- {
- Bean<?> bean = beans.iterator().next();
-
- CreationalContext ctx = beanManager.createCreationalContext(bean);
-
- // Create an instance of the component
- Object instance = bean.create(ctx);
-
- if (instance == null)
- {
- throw new RuntimeException(String.format(
- "Could not create instance of bean %s", beanName));
- }
-
- Class<?> type = null;
-
- //if (component.getType().isSessionBean()
- //&& component.getBusinessInterfaces().size() > 0)
- //{
- //for (Class c : component.getBusinessInterfaces())
- //{
- //if (c.isAnnotationPresent(Local.class))
- //{
- //type = c;
- //break;
- //}
- //}
-
- //if (type == null)
- //{
- // throw new RuntimeException(String.format(
- // "Type cannot be determined for bean [%s]. Please ensure that it has a local interface.",
- // bean));
- //}
- //}
-
- if (type == null)
- {
- type = bean.getBeanClass();
- }
-
- // Find the method according to the method name and the parameter classes
- Method m = findMethod(methodName, type);
- if (m == null)
- {
- throw new RuntimeException("No compatible method found.");
- }
-
- if (m.getAnnotation(WebRemote.class).exclude().length > 0)
- {
- constraints = Arrays.asList(m.getAnnotation(WebRemote.class).exclude());
- }
-
- Object[] params = convertParams(m.getGenericParameterTypes());
-
- // Invoke!
- try
- {
- result = m.invoke(instance, params);
- }
- catch (InvocationTargetException e)
- {
- this.exception = e.getCause();
- }
+
+ Object[] params = convertParams(m.getGenericParameterTypes());
+
+ // Invoke!
+ try
+ {
+ result = m.invoke(instance, params);
+ }
+ catch (InvocationTargetException e)
+ {
+ this.exception = e.getCause();
}
}
Added: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ReflectiveAnnotationLiteral.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ReflectiveAnnotationLiteral.java (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/ReflectiveAnnotationLiteral.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,28 @@
+package org.jboss.seam.remoting;
+
+import java.io.StringReader;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Proxy;
+import java.util.Map;
+
+import org.jboss.seam.remoting.annotationparser.AnnotationParser;
+
+public class ReflectiveAnnotationLiteral
+{
+ private Class<? extends Annotation> annotationType;
+ private Map<String,Object> memberValues;
+
+ public ReflectiveAnnotationLiteral(String declaration)
+ {
+ AnnotationParser parser = new AnnotationParser(new StringReader(declaration));
+
+ //this.annotationType = (Class<? extends Annotation>) Class.forName(annotationType));
+ }
+
+ public <T extends Annotation> T getAnnotation()
+ {
+ return (T) Proxy.newProxyInstance(annotationType.getClassLoader(),
+ new Class[] { annotationType },
+ new AnnotationLiteralHandler(annotationType, memberValues));
+ }
+}
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-11-30 14:23:32 UTC (rev 11704)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/AnnotationParser.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -2,60 +2,80 @@
package org.jboss.seam.remoting.annotationparser;
import java.io.*;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.Vector;
-/**
- * Grammar to parse Java 1.5 Annotations
- * @author Shane Bryzak
- */
+
public class AnnotationParser implements AnnotationParserConstants {
public AnnotationParser(String fileName)
{
this(System.in);
- try { ReInit(new FileInputStream(new File(fileName))); }
- catch(Exception e) { e.printStackTrace(); }
+ try
+ {
+ ReInit(new FileInputStream(new File(fileName)));
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
-
- public static void main(String args[]) {
- AnnotationParser parser;
- if (args.length == 0) {
- System.out.println("AnnotationParser: Reading from standard input . . .");
- parser = new AnnotationParser(System.in);
- } else if (args.length == 1) {
- System.out.println("AnnotationParser: Reading from file " + args[0] + " . . .");
- try {
- parser = new AnnotationParser(new java.io.FileInputStream(args[0]));
- } catch (java.io.FileNotFoundException e) {
- System.out.println("AnnotationParser: File " + args[0] + " not found.");
- return;
+ public static void main(String args[])
+ {
+ AnnotationParser parser;
+ if ( args.length == 0 )
+ {
+ System.out.println("AnnotationParser: Reading from standard input . . .");
+ parser = new AnnotationParser(System.in);
}
- } else {
- System.out.println("AnnotationParser: Usage is one of:");
- System.out.println(" java AnnotationParser < inputfile");
- System.out.println("OR");
- System.out.println(" java AnnotationParser inputfile");
- return;
- }
- try {
- parser.AnnotationsUnit();
- System.out.println("AnnotationParser: Annotations parsed successfully.");
- } catch (ParseException e) {
- System.out.println(e.getMessage());
- System.out.println("AnnotationParser: Encountered errors during parse.");
- }
- }
+ else
+ if ( args.length == 1 )
+ {
+ System.out.println("AnnotationParser: Reading from file " + args[0]+ " . . .");
+ try
+ {
+ parser = new AnnotationParser(new java.io.FileInputStream(args[0]));
+ }
+ catch (java.io.FileNotFoundException e)
+ {
+ System.out.println("AnnotationParser: File " + args[0]+ " not found.");
+ return;
+ }
+ }
+ else
+ {
+ System.out.println("AnnotationParser: Usage is one of:");
+ System.out.println(" java AnnotationParser < inputfile");
+ System.out.println("OR");
+ System.out.println(" java AnnotationParser inputfile");
+ return;
+ }
+ try
+ {
+ parser.AnnotationsUnit();
+ System.out.println("AnnotationParser: Annotations parsed successfully.");
+ }
+ catch (ParseException e)
+ {
+ System.out.println(e.getMessage());
+ System.out.println("AnnotationParser: Encountered errors during parse.");
+ }
+ }
-/***********************************
- * ANNOTATIONS GRAMMAR STARTS HERE *
- ***********************************/
-
-/*
- * Program structuring syntax follows.
- */
- final public void AnnotationsUnit() throws ParseException {
- jj_consume_token(LPAREN);
+ final public AnnotationsUnit AnnotationsUnit() throws ParseException {
+ NodeOptional n0 = new NodeOptional();
+ NodeSequence n1;
+ Annotation n2;
+ NodeListOptional n3;
+ NodeSequence n4;
+ NodeToken n5;
+ Token n6;
+ Annotation n7;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AT:
- Annotation();
+ n3 = new NodeListOptional();
+ n1 = new NodeSequence(2);
+ n2 = Annotation();
+ n1.addNode(n2);
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -65,50 +85,103 @@
default:
break label_1;
}
- jj_consume_token(COMMA);
- Annotation();
+ n4 = new NodeSequence(2);
+ n6 = jj_consume_token(COMMA);
+ n5 = JTBToolkit.makeNodeToken(n6);
+ n4.addNode(n5);
+ n7 = Annotation();
+ n4.addNode(n7);
+ n3.addNode(n4);
}
+ n3.nodes.trimToSize();
+ n1.addNode(n3);
+ n0.addNode(n1);
break;
default:
;
}
- jj_consume_token(RPAREN);
+ {if (true) return new AnnotationsUnit(n0);}
+ throw new Error("Missing return statement in function");
}
- final public void PrimitiveType() throws ParseException {
+ final public PrimitiveType PrimitiveType() throws ParseException {
+ NodeChoice n0;
+ NodeToken n1;
+ Token n2;
+ NodeToken n3;
+ Token n4;
+ NodeToken n5;
+ Token n6;
+ NodeToken n7;
+ Token n8;
+ NodeToken n9;
+ Token n10;
+ NodeToken n11;
+ Token n12;
+ NodeToken n13;
+ Token n14;
+ NodeToken n15;
+ Token n16;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case BOOLEAN:
- jj_consume_token(BOOLEAN);
+ n2 = jj_consume_token(BOOLEAN);
+ n1 = JTBToolkit.makeNodeToken(n2);
+ n0 = new NodeChoice(n1, 0);
break;
case CHAR:
- jj_consume_token(CHAR);
+ n4 = jj_consume_token(CHAR);
+ n3 = JTBToolkit.makeNodeToken(n4);
+ n0 = new NodeChoice(n3, 1);
break;
case BYTE:
- jj_consume_token(BYTE);
+ n6 = jj_consume_token(BYTE);
+ n5 = JTBToolkit.makeNodeToken(n6);
+ n0 = new NodeChoice(n5, 2);
break;
case SHORT:
- jj_consume_token(SHORT);
+ n8 = jj_consume_token(SHORT);
+ n7 = JTBToolkit.makeNodeToken(n8);
+ n0 = new NodeChoice(n7, 3);
break;
case INT:
- jj_consume_token(INT);
+ n10 = jj_consume_token(INT);
+ n9 = JTBToolkit.makeNodeToken(n10);
+ n0 = new NodeChoice(n9, 4);
break;
case LONG:
- jj_consume_token(LONG);
+ n12 = jj_consume_token(LONG);
+ n11 = JTBToolkit.makeNodeToken(n12);
+ n0 = new NodeChoice(n11, 5);
break;
case FLOAT:
- jj_consume_token(FLOAT);
+ n14 = jj_consume_token(FLOAT);
+ n13 = JTBToolkit.makeNodeToken(n14);
+ n0 = new NodeChoice(n13, 6);
break;
case DOUBLE:
- jj_consume_token(DOUBLE);
+ n16 = jj_consume_token(DOUBLE);
+ n15 = JTBToolkit.makeNodeToken(n16);
+ n0 = new NodeChoice(n15, 7);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
+ {if (true) return new PrimitiveType(n0);}
+ throw new Error("Missing return statement in function");
}
- final public void Name() throws ParseException {
- jj_consume_token(IDENTIFIER);
+ final public Name Name() throws ParseException {
+ NodeToken n0;
+ Token n1;
+ NodeListOptional n2 = new NodeListOptional();
+ NodeSequence n3;
+ NodeToken n4;
+ Token n5;
+ NodeToken n6;
+ Token n7;
+ n1 = jj_consume_token(IDENTIFIER);
+ n0 = JTBToolkit.makeNodeToken(n1);
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -118,103 +191,199 @@
default:
break label_2;
}
- jj_consume_token(DOT);
- jj_consume_token(IDENTIFIER);
+ 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();
+ {if (true) return new Name(n0,n2);}
+ throw new Error("Missing return statement in function");
}
- final public void Literal() throws ParseException {
+ final public Literal Literal() throws ParseException {
+ NodeChoice n0;
+ NodeToken n1;
+ Token n2;
+ NodeToken n3;
+ Token n4;
+ NodeToken n5;
+ Token n6;
+ NodeToken n7;
+ Token n8;
+ BooleanLiteral n9;
+ NullLiteral n10;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER_LITERAL:
- jj_consume_token(INTEGER_LITERAL);
+ n2 = jj_consume_token(INTEGER_LITERAL);
+ n1 = JTBToolkit.makeNodeToken(n2);
+ n0 = new NodeChoice(n1, 0);
break;
case FLOATING_POINT_LITERAL:
- jj_consume_token(FLOATING_POINT_LITERAL);
+ n4 = jj_consume_token(FLOATING_POINT_LITERAL);
+ n3 = JTBToolkit.makeNodeToken(n4);
+ n0 = new NodeChoice(n3, 1);
break;
case CHARACTER_LITERAL:
- jj_consume_token(CHARACTER_LITERAL);
+ n6 = jj_consume_token(CHARACTER_LITERAL);
+ n5 = JTBToolkit.makeNodeToken(n6);
+ n0 = new NodeChoice(n5, 2);
break;
case STRING_LITERAL:
- jj_consume_token(STRING_LITERAL);
+ n8 = jj_consume_token(STRING_LITERAL);
+ n7 = JTBToolkit.makeNodeToken(n8);
+ n0 = new NodeChoice(n7, 3);
break;
case FALSE:
case TRUE:
- BooleanLiteral();
+ n9 = BooleanLiteral();
+ n0 = new NodeChoice(n9, 4);
break;
case NULL:
- NullLiteral();
+ n10 = NullLiteral();
+ n0 = new NodeChoice(n10, 5);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
+ {if (true) return new Literal(n0);}
+ throw new Error("Missing return statement in function");
}
- final public void BooleanLiteral() throws ParseException {
+ final public BooleanLiteral BooleanLiteral() throws ParseException {
+ NodeChoice n0;
+ NodeToken n1;
+ Token n2;
+ NodeToken n3;
+ Token n4;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case TRUE:
- jj_consume_token(TRUE);
+ n2 = jj_consume_token(TRUE);
+ n1 = JTBToolkit.makeNodeToken(n2);
+ n0 = new NodeChoice(n1, 0);
break;
case FALSE:
- jj_consume_token(FALSE);
+ n4 = jj_consume_token(FALSE);
+ n3 = JTBToolkit.makeNodeToken(n4);
+ n0 = new NodeChoice(n3, 1);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
+ {if (true) return new BooleanLiteral(n0);}
+ throw new Error("Missing return statement in function");
}
- final public void NullLiteral() throws ParseException {
- jj_consume_token(NULL);
+ final public NullLiteral NullLiteral() throws ParseException {
+ NodeToken n0;
+ Token n1;
+ n1 = jj_consume_token(NULL);
+ n0 = JTBToolkit.makeNodeToken(n1);
+ {if (true) return new NullLiteral(n0);}
+ throw new Error("Missing return statement in function");
}
-/* Annotation syntax follows. */
- final public void Annotation() throws ParseException {
+ final public Annotation Annotation() throws ParseException {
+ NodeChoice n0;
+ NormalAnnotation n1;
+ SingleMemberAnnotation n2;
+ MarkerAnnotation n3;
if (jj_2_1(2147483647)) {
- NormalAnnotation();
+ n1 = NormalAnnotation();
+ n0 = new NodeChoice(n1, 0);
} else if (jj_2_2(2147483647)) {
- SingleMemberAnnotation();
+ n2 = SingleMemberAnnotation();
+ n0 = new NodeChoice(n2, 1);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AT:
- MarkerAnnotation();
+ n3 = MarkerAnnotation();
+ n0 = new NodeChoice(n3, 2);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
}
+ {if (true) return new Annotation(n0);}
+ throw new Error("Missing return statement in function");
}
- final public void NormalAnnotation() throws ParseException {
- jj_consume_token(AT);
- Name();
- jj_consume_token(LPAREN);
+ final public NormalAnnotation NormalAnnotation() throws ParseException {
+ NodeToken n0;
+ Token n1;
+ Name n2;
+ NodeToken n3;
+ Token n4;
+ NodeOptional n5 = new NodeOptional();
+ MemberValuePairs n6;
+ NodeToken n7;
+ Token n8;
+ n1 = jj_consume_token(AT);
+ n0 = JTBToolkit.makeNodeToken(n1);
+ n2 = Name();
+ n4 = jj_consume_token(LPAREN);
+ n3 = JTBToolkit.makeNodeToken(n4);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
- MemberValuePairs();
+ n6 = MemberValuePairs();
+ n5.addNode(n6);
break;
default:
;
}
- jj_consume_token(RPAREN);
+ n8 = jj_consume_token(RPAREN);
+ n7 = JTBToolkit.makeNodeToken(n8);
+ {if (true) return new NormalAnnotation(n0,n2,n3,n5,n7);}
+ throw new Error("Missing return statement in function");
}
- final public void MarkerAnnotation() throws ParseException {
- jj_consume_token(AT);
- Name();
+ final public MarkerAnnotation MarkerAnnotation() throws ParseException {
+ NodeToken n0;
+ Token n1;
+ Name n2;
+ n1 = jj_consume_token(AT);
+ n0 = JTBToolkit.makeNodeToken(n1);
+ n2 = Name();
+ {if (true) return new MarkerAnnotation(n0,n2);}
+ throw new Error("Missing return statement in function");
}
- final public void SingleMemberAnnotation() throws ParseException {
- jj_consume_token(AT);
- Name();
- jj_consume_token(LPAREN);
- MemberValue();
- jj_consume_token(RPAREN);
+ final public SingleMemberAnnotation SingleMemberAnnotation() throws ParseException {
+ NodeToken n0;
+ Token n1;
+ Name n2;
+ NodeToken n3;
+ Token n4;
+ MemberValue n5;
+ NodeToken n6;
+ Token n7;
+ n1 = jj_consume_token(AT);
+ n0 = JTBToolkit.makeNodeToken(n1);
+ n2 = Name();
+ n4 = jj_consume_token(LPAREN);
+ n3 = JTBToolkit.makeNodeToken(n4);
+ n5 = MemberValue();
+ n7 = jj_consume_token(RPAREN);
+ n6 = JTBToolkit.makeNodeToken(n7);
+ {if (true) return new SingleMemberAnnotation(n0,n2,n3,n5,n6);}
+ throw new Error("Missing return statement in function");
}
- final public void MemberValuePairs() throws ParseException {
- MemberValuePair();
+ final public MemberValuePairs MemberValuePairs() throws ParseException {
+ MemberValuePair n0;
+ NodeListOptional n1 = new NodeListOptional();
+ NodeSequence n2;
+ NodeToken n3;
+ Token n4;
+ MemberValuePair n5;
+ n0 = MemberValuePair();
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -224,24 +393,47 @@
default:
break label_3;
}
- jj_consume_token(COMMA);
- MemberValuePair();
+ n2 = new NodeSequence(2);
+ n4 = jj_consume_token(COMMA);
+ n3 = JTBToolkit.makeNodeToken(n4);
+ n2.addNode(n3);
+ n5 = MemberValuePair();
+ n2.addNode(n5);
+ n1.addNode(n2);
}
+ n1.nodes.trimToSize();
+ {if (true) return new MemberValuePairs(n0,n1);}
+ throw new Error("Missing return statement in function");
}
- final public void MemberValuePair() throws ParseException {
- jj_consume_token(IDENTIFIER);
- jj_consume_token(ASSIGN);
- MemberValue();
+ final public MemberValuePair MemberValuePair() throws ParseException {
+ NodeToken n0;
+ Token n1;
+ NodeToken n2;
+ Token n3;
+ MemberValue n4;
+ n1 = jj_consume_token(IDENTIFIER);
+ n0 = JTBToolkit.makeNodeToken(n1);
+ n3 = jj_consume_token(ASSIGN);
+ n2 = JTBToolkit.makeNodeToken(n3);
+ n4 = MemberValue();
+ {if (true) return new MemberValuePair(n0,n2,n4);}
+ throw new Error("Missing return statement in function");
}
- final public void MemberValue() throws ParseException {
+ final public MemberValue MemberValue() throws ParseException {
+ NodeChoice n0;
+ Annotation n1;
+ MemberValueArrayInitializer n2;
+ Literal n3;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AT:
- Annotation();
+ n1 = Annotation();
+ n0 = new NodeChoice(n1, 0);
break;
case LBRACE:
- MemberValueArrayInitializer();
+ n2 = MemberValueArrayInitializer();
+ n0 = new NodeChoice(n2, 1);
break;
case FALSE:
case NULL:
@@ -250,17 +442,34 @@
case FLOATING_POINT_LITERAL:
case CHARACTER_LITERAL:
case STRING_LITERAL:
- Literal();
+ n3 = Literal();
+ n0 = new NodeChoice(n3, 2);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
+ {if (true) return new MemberValue(n0);}
+ throw new Error("Missing return statement in function");
}
- final public void MemberValueArrayInitializer() throws ParseException {
- jj_consume_token(LBRACE);
- MemberValue();
+ final public MemberValueArrayInitializer MemberValueArrayInitializer() throws ParseException {
+ NodeToken n0;
+ Token n1;
+ MemberValue n2;
+ NodeListOptional n3 = new NodeListOptional();
+ NodeSequence n4;
+ NodeToken n5;
+ Token n6;
+ MemberValue n7;
+ NodeOptional n8 = new NodeOptional();
+ NodeToken n9;
+ Token n10;
+ NodeToken n11;
+ Token n12;
+ n1 = jj_consume_token(LBRACE);
+ n0 = JTBToolkit.makeNodeToken(n1);
+ n2 = MemberValue();
label_4:
while (true) {
if (jj_2_3(2)) {
@@ -268,17 +477,28 @@
} else {
break label_4;
}
- jj_consume_token(COMMA);
- MemberValue();
+ n4 = new NodeSequence(2);
+ n6 = jj_consume_token(COMMA);
+ n5 = JTBToolkit.makeNodeToken(n6);
+ n4.addNode(n5);
+ n7 = MemberValue();
+ n4.addNode(n7);
+ n3.addNode(n4);
}
+ n3.nodes.trimToSize();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
- jj_consume_token(COMMA);
+ n10 = jj_consume_token(COMMA);
+ n9 = JTBToolkit.makeNodeToken(n10);
+ n8.addNode(n9);
break;
default:
;
}
- jj_consume_token(RBRACE);
+ n12 = jj_consume_token(RBRACE);
+ n11 = JTBToolkit.makeNodeToken(n12);
+ {if (true) return new MemberValueArrayInitializer(n0,n2,n3,n8,n11);}
+ throw new Error("Missing return statement in function");
}
private boolean jj_2_1(int xla) {
@@ -299,74 +519,70 @@
catch(LookaheadSuccess ls) { return true; }
}
- private boolean jj_3R_20() {
- if (jj_scan_token(AT)) return true;
+ private boolean jj_3R_17() {
+ if (jj_3R_26()) return true;
return false;
}
- private boolean jj_3R_18() {
- if (jj_3R_22()) return true;
+ private boolean jj_3R_16() {
+ if (jj_3R_25()) return true;
return false;
}
- private boolean jj_3R_21() {
+ private boolean jj_3R_26() {
if (jj_scan_token(AT)) return true;
return false;
}
- private boolean jj_3R_14() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_scan_token(66)) {
- jj_scanpos = xsp;
- if (jj_scan_token(70)) {
- jj_scanpos = xsp;
- if (jj_scan_token(72)) {
- jj_scanpos = xsp;
- if (jj_scan_token(73)) {
- jj_scanpos = xsp;
- if (jj_3R_18()) {
- jj_scanpos = xsp;
- if (jj_scan_token(45)) return true;
- }
- }
- }
- }
- }
+ private boolean jj_3R_15() {
+ if (jj_3R_24()) return true;
return false;
}
- private boolean jj_3_2() {
- if (jj_scan_token(AT)) return true;
- if (jj_3R_5()) return true;
- if (jj_scan_token(LPAREN)) return true;
+ private boolean jj_3R_11() {
+ if (jj_3R_14()) return true;
return false;
}
- private boolean jj_3R_19() {
- if (jj_scan_token(AT)) return true;
+ private boolean jj_3R_10() {
+ if (jj_3R_13()) return true;
return false;
}
- private boolean jj_3_1() {
- if (jj_scan_token(AT)) return true;
- if (jj_3R_5()) return true;
- if (jj_scan_token(LPAREN)) return true;
+ private boolean jj_3R_8() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_12() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_6()) {
+ if (jj_3R_15()) {
jj_scanpos = xsp;
- if (jj_scan_token(78)) return true;
+ if (jj_3R_16()) {
+ jj_scanpos = xsp;
+ if (jj_3R_17()) return true;
}
+ }
return false;
}
- private boolean jj_3R_8() {
- if (jj_scan_token(DOT)) return true;
- if (jj_scan_token(IDENTIFIER)) return true;
+ private boolean jj_3R_23() {
+ if (jj_3R_28()) return true;
return false;
}
+ private boolean jj_3R_9() {
+ if (jj_3R_12()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_22() {
+ if (jj_3R_27()) return true;
+ return false;
+ }
+
private boolean jj_3R_5() {
if (jj_scan_token(IDENTIFIER)) return true;
Token xsp;
@@ -377,89 +593,133 @@
return false;
}
- private boolean jj_3R_17() {
- if (jj_3R_21()) return true;
+ private boolean jj_3R_7() {
+ 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;
+ }
+ }
return false;
}
- private boolean jj_3R_13() {
- if (jj_scan_token(LBRACE)) return true;
+ private boolean jj_3R_21() {
+ if (jj_scan_token(STRING_LITERAL)) return true;
return false;
}
- private boolean jj_3R_16() {
- if (jj_3R_20()) return true;
+ private boolean jj_3R_20() {
+ if (jj_scan_token(CHARACTER_LITERAL)) return true;
return false;
}
- private boolean jj_3R_12() {
+ private boolean jj_3R_19() {
+ if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3_3() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_7()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_28() {
+ if (jj_scan_token(NULL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_24() {
+ if (jj_scan_token(AT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_6() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(ASSIGN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_18() {
+ if (jj_scan_token(INTEGER_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_13() {
+ if (jj_scan_token(LBRACE)) return true;
+ return false;
+ }
+
+ 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()) {
+ jj_scanpos = xsp;
+ if (jj_3R_21()) {
+ jj_scanpos = xsp;
+ if (jj_3R_22()) {
+ jj_scanpos = xsp;
+ if (jj_3R_23()) return true;
}
}
+ }
+ }
+ }
return false;
}
- private boolean jj_3R_15() {
- if (jj_3R_19()) return true;
+ private boolean jj_3R_25() {
+ if (jj_scan_token(AT)) return true;
return false;
}
- private boolean jj_3R_11() {
- if (jj_3R_14()) return true;
+ private boolean jj_3R_30() {
+ if (jj_scan_token(FALSE)) return true;
return false;
}
- private boolean jj_3R_10() {
- if (jj_3R_13()) return true;
+ private boolean jj_3_2() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_5()) return true;
+ if (jj_scan_token(LPAREN)) return true;
return false;
}
- private boolean jj_3R_9() {
- if (jj_3R_12()) return true;
+ private boolean jj_3R_29() {
+ if (jj_scan_token(TRUE)) return true;
return false;
}
- private boolean jj_3R_7() {
+ private boolean jj_3_1() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_5()) return true;
+ if (jj_scan_token(LPAREN)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_9()) {
+ if (jj_3R_6()) {
jj_scanpos = xsp;
- if (jj_3R_10()) {
- jj_scanpos = xsp;
- if (jj_3R_11()) return true;
+ if (jj_scan_token(78)) return true;
}
- }
return false;
}
- private boolean jj_3R_22() {
+ private boolean jj_3R_27() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(61)) {
+ if (jj_3R_29()) {
jj_scanpos = xsp;
- if (jj_scan_token(30)) return true;
+ if (jj_3R_30()) return true;
}
return false;
}
- private boolean jj_3R_6() {
- if (jj_scan_token(IDENTIFIER)) return true;
- if (jj_scan_token(ASSIGN)) return true;
- return false;
- }
-
- private boolean jj_3_3() {
- if (jj_scan_token(COMMA)) return true;
- if (jj_3R_7()) return true;
- return false;
- }
-
/** Generated Token Manager. */
public AnnotationParserTokenManager token_source;
JavaCharStream jj_input_stream;
@@ -598,3 +858,9 @@
}
}
+
+class JTBToolkit {
+ static NodeToken makeNodeToken(Token t) {
+ return new NodeToken(t.image.intern(), t.kind, t.beginLine, t.beginColumn, t.endLine, t.endColumn);
+ }
+}
Modified: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/AnnotationParserTokenManager.java
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/AnnotationParserTokenManager.java 2009-11-30 14:23:32 UTC (rev 11704)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/AnnotationParserTokenManager.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -1,6 +1,8 @@
/* Generated By:JavaCC: Do not edit this line. AnnotationParserTokenManager.java */
package org.jboss.seam.remoting.annotationparser;
import java.io.*;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.Vector;
/** Token Manager. */
public class AnnotationParserTokenManager implements AnnotationParserConstants
@@ -1709,7 +1711,7 @@
case 7 :
image.append(input_stream.GetSuffix(jjimageLen));
jjimageLen = 0;
- input_stream.backup(1);
+ input_stream.backup(1);
break;
default :
break;
Added: modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/jtb.out.jj
===================================================================
--- modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/jtb.out.jj (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/jtb.out.jj 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,640 @@
+//
+// Generated by JTB 1.3.2
+//
+
+options {
+ JAVA_UNICODE_ESCAPE = true;
+ ERROR_REPORTING = false;
+ STATIC = false;
+}
+
+PARSER_BEGIN(AnnotationParser)
+package org.jboss.seam.remoting.annotationparser;
+
+import java.io.*;
+import syntaxtree.*;
+import java.util.Vector;
+
+
+public class AnnotationParser
+{
+ public AnnotationParser(String fileName)
+ {
+ this(System.in);
+ try
+ {
+ ReInit(new FileInputStream(new File(fileName)));
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ public static void main(String args[])
+ {
+ AnnotationParser parser;
+ if ( args.length == 0 )
+ {
+ System.out.println("AnnotationParser: Reading from standard input . . .");
+ parser = new AnnotationParser(System.in);
+ }
+ else
+ if ( args.length == 1 )
+ {
+ System.out.println("AnnotationParser: Reading from file " + args[0]+ " . . .");
+ try
+ {
+ parser = new AnnotationParser(new java.io.FileInputStream(args[0]));
+ }
+ catch (java.io.FileNotFoundException e)
+ {
+ System.out.println("AnnotationParser: File " + args[0]+ " not found.");
+ return;
+ }
+ }
+ else
+ {
+ System.out.println("AnnotationParser: Usage is one of:");
+ System.out.println(" java AnnotationParser < inputfile");
+ System.out.println("OR");
+ System.out.println(" java AnnotationParser inputfile");
+ return;
+ }
+ try
+ {
+ parser.AnnotationsUnit();
+ System.out.println("AnnotationParser: Annotations parsed successfully.");
+ }
+ catch (ParseException e)
+ {
+ System.out.println(e.getMessage());
+ System.out.println("AnnotationParser: Encountered errors during parse.");
+ }
+ }
+}
+
+class JTBToolkit {
+ static NodeToken makeNodeToken(Token t) {
+ return new NodeToken(t.image.intern(), t.kind, t.beginLine, t.beginColumn, t.endLine, t.endColumn);
+ }
+}
+
+
+PARSER_END(AnnotationParser)
+
+SKIP :
+{
+ " "
+ | "\t"
+ | "\n"
+ | "\r"
+ | "\f"
+}
+
+MORE :
+{
+ "//" : IN_SINGLE_LINE_COMMENT
+ | <"/**" ~["/"]>
+ {
+ input_stream.backup(1);
+ } : IN_FORMAL_COMMENT
+ | "/*" : IN_MULTI_LINE_COMMENT
+}
+
+<IN_SINGLE_LINE_COMMENT> SPECIAL_TOKEN :
+{
+ <SINGLE_LINE_COMMENT: "\n" | "\r" | "\r\n"> : DEFAULT
+}
+
+<IN_FORMAL_COMMENT> SPECIAL_TOKEN :
+{
+ <FORMAL_COMMENT: "*/"> : DEFAULT
+}
+
+<IN_MULTI_LINE_COMMENT> SPECIAL_TOKEN :
+{
+ <MULTI_LINE_COMMENT: "*/"> : DEFAULT
+}
+
+<IN_SINGLE_LINE_COMMENT, IN_FORMAL_COMMENT, IN_MULTI_LINE_COMMENT> MORE :
+{
+ <~[]>
+}
+
+TOKEN :
+{
+ <ABSTRACT: "abstract">
+ | <ASSERT: "assert">
+ | <BOOLEAN: "boolean">
+ | <BREAK: "break">
+ | <BYTE: "byte">
+ | <CASE: "case">
+ | <CATCH: "catch">
+ | <CHAR: "char">
+ | <CLASS: "class">
+ | <CONST: "const">
+ | <CONTINUE: "continue">
+ | <_DEFAULT: "default">
+ | <DO: "do">
+ | <DOUBLE: "double">
+ | <ELSE: "else">
+ | <ENUM: "enum">
+ | <EXTENDS: "extends">
+ | <FALSE: "false">
+ | <FINAL: "final">
+ | <FINALLY: "finally">
+ | <FLOAT: "float">
+ | <FOR: "for">
+ | <GOTO: "goto">
+ | <IF: "if">
+ | <IMPLEMENTS: "implements">
+ | <IMPORT: "import">
+ | <INSTANCEOF: "instanceof">
+ | <INT: "int">
+ | <INTERFACE: "interface">
+ | <LONG: "long">
+ | <NATIVE: "native">
+ | <NEW: "new">
+ | <NULL: "null">
+ | <PACKAGE: "package">
+ | <PRIVATE: "private">
+ | <PROTECTED: "protected">
+ | <PUBLIC: "public">
+ | <RETURN: "return">
+ | <SHORT: "short">
+ | <STATIC: "static">
+ | <STRICTFP: "strictfp">
+ | <SUPER: "super">
+ | <SWITCH: "switch">
+ | <SYNCHRONIZED: "synchronized">
+ | <THIS: "this">
+ | <THROW: "throw">
+ | <THROWS: "throws">
+ | <TRANSIENT: "transient">
+ | <TRUE: "true">
+ | <TRY: "try">
+ | <VOID: "void">
+ | <VOLATILE: "volatile">
+ | <WHILE: "while">
+}
+
+TOKEN :
+{
+ <INTEGER_LITERAL: <DECIMAL_LITERAL> (["l", "L"])? | <HEX_LITERAL> (["l", "L"])? | <OCTAL_LITERAL> (["l", "L"])?>
+ | <#DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])*>
+ | <#HEX_LITERAL: "0" ["x", "X"] (["0"-"9", "a"-"f", "A"-"F"])+>
+ | <#OCTAL_LITERAL: "0" (["0"-"7"])*>
+ | <FLOATING_POINT_LITERAL: (["0"-"9"])+ "." (["0"-"9"])* (<EXPONENT>)? (["f", "F", "d", "D"])? | "." (["0"-"9"])+ (<EXPONENT>)? (["f", "F", "d", "D"])? | (["0"-"9"])+ <EXPONENT> (["f", "F", "d", "D"])? | (["0"-"9"])+ (<EXPONENT>)? ["f", "F", "d", "D"]>
+ | <#EXPONENT: ["e", "E"] (["+", "-"])? (["0"-"9"])+>
+ | <CHARACTER_LITERAL: "'" ((~["'", "\\", "\n", "\r"]) | ("\\" (["n", "t", "b", "r", "f", "\\", "'", "\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"]))) "'">
+ | <STRING_LITERAL: "\"" ((~["\"", "\\", "\n", "\r"]) | ("\\" (["n", "t", "b", "r", "f", "\\", "'", "\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"])))* "\"">
+}
+
+TOKEN :
+{
+ <IDENTIFIER: <LETTER> (<LETTER> | <DIGIT>)*>
+ | <#LETTER: ["$", "A"-"Z", "_", "a"-"z", "\u00c0"-"\u00d6", "\u00d8"-"\u00f6", "\u00f8"-"\u00ff", "\u0100"-"\u1fff", "\u3040"-"\u318f", "\u3300"-"\u337f", "\u3400"-"\u3d2d", "\u4e00"-"\u9fff", "\uf900"-"\ufaff"]>
+ | <#DIGIT: ["0"-"9", "\u0660"-"\u0669", "\u06f0"-"\u06f9", "\u0966"-"\u096f", "\u09e6"-"\u09ef", "\u0a66"-"\u0a6f", "\u0ae6"-"\u0aef", "\u0b66"-"\u0b6f", "\u0be7"-"\u0bef", "\u0c66"-"\u0c6f", "\u0ce6"-"\u0cef", "\u0d66"-"\u0d6f", "\u0e50"-"\u0e59", "\u0ed0"-"\u0ed9", "\u1040"-"\u1049"]>
+}
+
+TOKEN :
+{
+ <LPAREN: "(">
+ | <RPAREN: ")">
+ | <LBRACE: "{">
+ | <RBRACE: "}">
+ | <LBRACKET: "[">
+ | <RBRACKET: "]">
+ | <SEMICOLON: ";">
+ | <COMMA: ",">
+ | <DOT: ".">
+ | <AT: "@">
+}
+
+TOKEN :
+{
+ <ASSIGN: "=">
+ | <LT: "<">
+ | <BANG: "!">
+ | <TILDE: "~">
+ | <HOOK: "?">
+ | <COLON: ":">
+ | <EQ: "==">
+ | <LE: "<=">
+ | <GE: ">=">
+ | <NE: "!=">
+ | <SC_OR: "||">
+ | <SC_AND: "&&">
+ | <INCR: "++">
+ | <DECR: "--">
+ | <PLUS: "+">
+ | <MINUS: "-">
+ | <STAR: "*">
+ | <SLASH: "/">
+ | <BIT_AND: "&">
+ | <BIT_OR: "|">
+ | <XOR: "^">
+ | <REM: "%">
+ | <LSHIFT: "<<">
+ | <PLUSASSIGN: "+=">
+ | <MINUSASSIGN: "-=">
+ | <STARASSIGN: "*=">
+ | <SLASHASSIGN: "/=">
+ | <ANDASSIGN: "&=">
+ | <ORASSIGN: "|=">
+ | <XORASSIGN: "^=">
+ | <REMASSIGN: "%=">
+ | <LSHIFTASSIGN: "<<=">
+ | <RSIGNEDSHIFTASSIGN: ">>=">
+ | <RUNSIGNEDSHIFTASSIGN: ">>>=">
+ | <ELLIPSIS: "...">
+}
+
+AnnotationsUnit AnnotationsUnit() :
+{
+ NodeOptional n0 = new NodeOptional();
+ NodeSequence n1;
+ Annotation n2;
+ NodeListOptional n3;
+ NodeSequence n4;
+ NodeToken n5;
+ Token n6;
+ Annotation n7;
+
+
+}
+{
+ (
+ { n3 = new NodeListOptional(); }
+ { n1 = new NodeSequence(2); }
+ n2=Annotation()
+ { n1.addNode(n2); }
+ (
+ { n4 = new NodeSequence(2); }
+ n6="," { n5 = JTBToolkit.makeNodeToken(n6); }
+ { n4.addNode(n5); }
+ n7=Annotation()
+ { n4.addNode(n7); }
+ { n3.addNode(n4); }
+ )*
+ { n3.nodes.trimToSize(); }
+ { n1.addNode(n3); }
+ { n0.addNode(n1); }
+ )?
+
+ { return new AnnotationsUnit(n0); }
+}
+
+PrimitiveType PrimitiveType() :
+{
+ NodeChoice n0;
+ NodeToken n1;
+ Token n2;
+ NodeToken n3;
+ Token n4;
+ NodeToken n5;
+ Token n6;
+ NodeToken n7;
+ Token n8;
+ NodeToken n9;
+ Token n10;
+ NodeToken n11;
+ Token n12;
+ NodeToken n13;
+ Token n14;
+ NodeToken n15;
+ Token n16;
+
+
+}
+{
+ (
+ n2="boolean" { n1 = JTBToolkit.makeNodeToken(n2); }
+ { n0 = new NodeChoice(n1, 0); }
+ |
+ n4="char" { n3 = JTBToolkit.makeNodeToken(n4); }
+ { n0 = new NodeChoice(n3, 1); }
+ |
+ n6="byte" { n5 = JTBToolkit.makeNodeToken(n6); }
+ { n0 = new NodeChoice(n5, 2); }
+ |
+ n8="short" { n7 = JTBToolkit.makeNodeToken(n8); }
+ { n0 = new NodeChoice(n7, 3); }
+ |
+ n10="int" { n9 = JTBToolkit.makeNodeToken(n10); }
+ { n0 = new NodeChoice(n9, 4); }
+ |
+ n12="long" { n11 = JTBToolkit.makeNodeToken(n12); }
+ { n0 = new NodeChoice(n11, 5); }
+ |
+ n14="float" { n13 = JTBToolkit.makeNodeToken(n14); }
+ { n0 = new NodeChoice(n13, 6); }
+ |
+ n16="double" { n15 = JTBToolkit.makeNodeToken(n16); }
+ { n0 = new NodeChoice(n15, 7); }
+ )
+
+ { return new PrimitiveType(n0); }
+}
+
+Name Name() :
+{
+ NodeToken n0;
+ Token n1;
+ NodeListOptional n2 = new NodeListOptional();
+ NodeSequence n3;
+ NodeToken n4;
+ Token n5;
+ NodeToken n6;
+ Token n7;
+
+
+}
+{
+ n1=<IDENTIFIER> { n0 = JTBToolkit.makeNodeToken(n1); }
+ (
+ { n3 = new NodeSequence(2); }
+ n5="." { n4 = JTBToolkit.makeNodeToken(n5); }
+ { n3.addNode(n4); }
+ n7=<IDENTIFIER> { n6 = JTBToolkit.makeNodeToken(n7); }
+ { n3.addNode(n6); }
+ { n2.addNode(n3); }
+ )*
+ { n2.nodes.trimToSize(); }
+
+ { return new Name(n0,n2); }
+}
+
+Literal Literal() :
+{
+ NodeChoice n0;
+ NodeToken n1;
+ Token n2;
+ NodeToken n3;
+ Token n4;
+ NodeToken n5;
+ Token n6;
+ NodeToken n7;
+ Token n8;
+ BooleanLiteral n9;
+ NullLiteral n10;
+
+
+}
+{
+ (
+ n2=<INTEGER_LITERAL> { n1 = JTBToolkit.makeNodeToken(n2); }
+ { n0 = new NodeChoice(n1, 0); }
+ |
+ n4=<FLOATING_POINT_LITERAL> { n3 = JTBToolkit.makeNodeToken(n4); }
+ { n0 = new NodeChoice(n3, 1); }
+ |
+ n6=<CHARACTER_LITERAL> { n5 = JTBToolkit.makeNodeToken(n6); }
+ { n0 = new NodeChoice(n5, 2); }
+ |
+ n8=<STRING_LITERAL> { n7 = JTBToolkit.makeNodeToken(n8); }
+ { n0 = new NodeChoice(n7, 3); }
+ |
+ n9=BooleanLiteral()
+ { n0 = new NodeChoice(n9, 4); }
+ |
+ n10=NullLiteral()
+ { n0 = new NodeChoice(n10, 5); }
+ )
+
+ { return new Literal(n0); }
+}
+
+BooleanLiteral BooleanLiteral() :
+{
+ NodeChoice n0;
+ NodeToken n1;
+ Token n2;
+ NodeToken n3;
+ Token n4;
+
+
+}
+{
+ (
+ n2="true" { n1 = JTBToolkit.makeNodeToken(n2); }
+ { n0 = new NodeChoice(n1, 0); }
+ |
+ n4="false" { n3 = JTBToolkit.makeNodeToken(n4); }
+ { n0 = new NodeChoice(n3, 1); }
+ )
+
+ { return new BooleanLiteral(n0); }
+}
+
+NullLiteral NullLiteral() :
+{
+ NodeToken n0;
+ Token n1;
+
+
+}
+{
+ n1="null" { n0 = JTBToolkit.makeNodeToken(n1); }
+
+ { return new NullLiteral(n0); }
+}
+
+Annotation Annotation() :
+{
+ NodeChoice n0;
+ NormalAnnotation n1;
+ SingleMemberAnnotation n2;
+ MarkerAnnotation n3;
+
+
+}
+{
+ (
+ LOOKAHEAD("@" Name() "(" ( <IDENTIFIER> "=" | ")" ))
+ n1=NormalAnnotation()
+ { n0 = new NodeChoice(n1, 0); }
+ |
+ LOOKAHEAD("@" Name() "(")
+ n2=SingleMemberAnnotation()
+ { n0 = new NodeChoice(n2, 1); }
+ |
+ n3=MarkerAnnotation()
+ { n0 = new NodeChoice(n3, 2); }
+ )
+
+ { return new Annotation(n0); }
+}
+
+NormalAnnotation NormalAnnotation() :
+{
+ NodeToken n0;
+ Token n1;
+ Name n2;
+ NodeToken n3;
+ Token n4;
+ NodeOptional n5 = new NodeOptional();
+ MemberValuePairs n6;
+ NodeToken n7;
+ Token n8;
+
+
+}
+{
+ n1="@" { n0 = JTBToolkit.makeNodeToken(n1); }
+ n2=Name()
+ n4="(" { n3 = JTBToolkit.makeNodeToken(n4); }
+ (
+ n6=MemberValuePairs()
+ { n5.addNode(n6); }
+ )?
+ n8=")" { n7 = JTBToolkit.makeNodeToken(n8); }
+
+ { return new NormalAnnotation(n0,n2,n3,n5,n7); }
+}
+
+MarkerAnnotation MarkerAnnotation() :
+{
+ NodeToken n0;
+ Token n1;
+ Name n2;
+
+
+}
+{
+ n1="@" { n0 = JTBToolkit.makeNodeToken(n1); }
+ n2=Name()
+
+ { return new MarkerAnnotation(n0,n2); }
+}
+
+SingleMemberAnnotation SingleMemberAnnotation() :
+{
+ NodeToken n0;
+ Token n1;
+ Name n2;
+ NodeToken n3;
+ Token n4;
+ MemberValue n5;
+ NodeToken n6;
+ Token n7;
+
+
+}
+{
+ n1="@" { n0 = JTBToolkit.makeNodeToken(n1); }
+ n2=Name()
+ n4="(" { n3 = JTBToolkit.makeNodeToken(n4); }
+ n5=MemberValue()
+ n7=")" { n6 = JTBToolkit.makeNodeToken(n7); }
+
+ { return new SingleMemberAnnotation(n0,n2,n3,n5,n6); }
+}
+
+MemberValuePairs MemberValuePairs() :
+{
+ MemberValuePair n0;
+ NodeListOptional n1 = new NodeListOptional();
+ NodeSequence n2;
+ NodeToken n3;
+ Token n4;
+ MemberValuePair n5;
+
+
+}
+{
+ n0=MemberValuePair()
+ (
+ { n2 = new NodeSequence(2); }
+ n4="," { n3 = JTBToolkit.makeNodeToken(n4); }
+ { n2.addNode(n3); }
+ n5=MemberValuePair()
+ { n2.addNode(n5); }
+ { n1.addNode(n2); }
+ )*
+ { n1.nodes.trimToSize(); }
+
+ { return new MemberValuePairs(n0,n1); }
+}
+
+MemberValuePair MemberValuePair() :
+{
+ NodeToken n0;
+ Token n1;
+ NodeToken n2;
+ Token n3;
+ MemberValue n4;
+
+
+}
+{
+ n1=<IDENTIFIER> { n0 = JTBToolkit.makeNodeToken(n1); }
+ n3="=" { n2 = JTBToolkit.makeNodeToken(n3); }
+ n4=MemberValue()
+
+ { return new MemberValuePair(n0,n2,n4); }
+}
+
+MemberValue MemberValue() :
+{
+ NodeChoice n0;
+ Annotation n1;
+ MemberValueArrayInitializer n2;
+ Literal n3;
+
+
+}
+{
+ (
+ n1=Annotation()
+ { n0 = new NodeChoice(n1, 0); }
+ |
+ n2=MemberValueArrayInitializer()
+ { n0 = new NodeChoice(n2, 1); }
+ |
+ n3=Literal()
+ { n0 = new NodeChoice(n3, 2); }
+ )
+
+ { return new MemberValue(n0); }
+}
+
+MemberValueArrayInitializer MemberValueArrayInitializer() :
+{
+ NodeToken n0;
+ Token n1;
+ MemberValue n2;
+ NodeListOptional n3 = new NodeListOptional();
+ NodeSequence n4;
+ NodeToken n5;
+ Token n6;
+ MemberValue n7;
+ NodeOptional n8 = new NodeOptional();
+ NodeToken n9;
+ Token n10;
+ NodeToken n11;
+ Token n12;
+
+
+}
+{
+ n1="{" { n0 = JTBToolkit.makeNodeToken(n1); }
+ n2=MemberValue()
+ (
+ LOOKAHEAD(2)
+ { n4 = new NodeSequence(2); }
+ n6="," { n5 = JTBToolkit.makeNodeToken(n6); }
+ { n4.addNode(n5); }
+ n7=MemberValue()
+ { n4.addNode(n7); }
+ { n3.addNode(n4); }
+ )*
+ { n3.nodes.trimToSize(); }
+ (
+ n10="," { n9 = JTBToolkit.makeNodeToken(n10); }
+ { n8.addNode(n9); }
+ )?
+ n12="}" { n11 = JTBToolkit.makeNodeToken(n12); }
+
+ { return new MemberValueArrayInitializer(n0,n2,n3,n8,n11); }
+}
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Annotation.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,35 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+public class Annotation implements Node {
+ public NodeChoice f0;
+
+ public Annotation(NodeChoice n0) {
+ f0 = n0;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/AnnotationsUnit.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,33 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+public class AnnotationsUnit implements Node {
+ public NodeOptional f0;
+
+ public AnnotationsUnit(NodeOptional n0) {
+ f0 = n0;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/BooleanLiteral.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,34 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> "true"
+ * | "false"
+ */
+public class BooleanLiteral implements Node {
+ public NodeChoice f0;
+
+ public BooleanLiteral(NodeChoice n0) {
+ f0 = n0;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Literal.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,38 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+public class Literal implements Node {
+ public NodeChoice f0;
+
+ public Literal(NodeChoice n0) {
+ f0 = n0;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MarkerAnnotation.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,41 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+public class MarkerAnnotation implements Node {
+ public NodeToken f0;
+ public Name f1;
+
+ public MarkerAnnotation(NodeToken n0, Name n1) {
+ f0 = n0;
+ f1 = n1;
+ }
+
+ public MarkerAnnotation(Name n0) {
+ f0 = new NodeToken("@");
+ f1 = n0;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValue.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,35 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+public class MemberValue implements Node {
+ public NodeChoice f0;
+
+ public MemberValue(NodeChoice n0) {
+ f0 = n0;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValueArrayInitializer.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,53 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+public class MemberValueArrayInitializer implements Node {
+ public NodeToken f0;
+ public MemberValue f1;
+ public NodeListOptional f2;
+ public NodeOptional f3;
+ public NodeToken f4;
+
+ public MemberValueArrayInitializer(NodeToken n0, MemberValue n1, NodeListOptional n2, NodeOptional n3, NodeToken n4) {
+ f0 = n0;
+ f1 = n1;
+ f2 = n2;
+ f3 = n3;
+ f4 = n4;
+ }
+
+ public MemberValueArrayInitializer(MemberValue n0, NodeListOptional n1, NodeOptional n2) {
+ f0 = new NodeToken("{");
+ f1 = n0;
+ f2 = n1;
+ f3 = n2;
+ f4 = new NodeToken("}");
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePair.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,45 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+public class MemberValuePair implements Node {
+ public NodeToken f0;
+ public NodeToken f1;
+ public MemberValue f2;
+
+ public MemberValuePair(NodeToken n0, NodeToken n1, MemberValue n2) {
+ f0 = n0;
+ f1 = n1;
+ f2 = n2;
+ }
+
+ public MemberValuePair(NodeToken n0, MemberValue n1) {
+ f0 = n0;
+ f1 = new NodeToken("=");
+ f2 = n1;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/MemberValuePairs.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,36 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+public class MemberValuePairs implements Node {
+ public MemberValuePair f0;
+ public NodeListOptional f1;
+
+ public MemberValuePairs(MemberValuePair n0, NodeListOptional n1) {
+ f0 = n0;
+ f1 = n1;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Name.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,36 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+public class Name implements Node {
+ public NodeToken f0;
+ public NodeListOptional f1;
+
+ public Name(NodeToken n0, NodeListOptional n1) {
+ f0 = n0;
+ f1 = n1;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/Node.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,18 @@
+//
+// Generated by JTB 1.3.2
+//
+
+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);
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeChoice.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,38 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Represents a grammar choice, e.g. ( A | B )
+ */
+public class NodeChoice implements Node {
+ public NodeChoice(Node node) {
+ this(node, -1);
+ }
+
+ public NodeChoice(Node node, int whichChoice) {
+ choice = node;
+ which = whichChoice;
+ }
+
+ public void accept(Visitor v) {
+ choice.accept(v);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return choice.accept(v,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return choice.accept(v);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ choice.accept(v,argu);
+ }
+
+ public Node choice;
+ public int which;
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeList.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,45 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+import java.util.*;
+
+/**
+ * Represents a grammar list, e.g. ( A )+
+ */
+public class NodeList implements NodeListInterface {
+ public NodeList() {
+ nodes = new Vector<Node>();
+ }
+
+ public NodeList(Node firstNode) {
+ nodes = new Vector<Node>();
+ addNode(firstNode);
+ }
+
+ public void addNode(Node n) {
+ nodes.addElement(n);
+ }
+
+ 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) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+
+ public Vector<Node> nodes;
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListInterface.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,24 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * The interface which NodeList, NodeListOptional, and NodeSequence
+ * implement.
+ */
+public interface NodeListInterface extends Node {
+ public void addNode(Node n);
+ public Node elementAt(int i);
+ 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);
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeListOptional.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,46 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+import java.util.*;
+
+/**
+ * Represents an optional grammar list, e.g. ( A )*
+ */
+public class NodeListOptional implements NodeListInterface {
+ public NodeListOptional() {
+ nodes = new Vector<Node>();
+ }
+
+ public NodeListOptional(Node firstNode) {
+ nodes = new Vector<Node>();
+ addNode(firstNode);
+ }
+
+ public void addNode(Node n) {
+ nodes.addElement(n);
+ }
+
+ public Enumeration<Node> elements() { return nodes.elements(); }
+ 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) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+
+ public Vector<Node> nodes;
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeOptional.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,43 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Represents an grammar optional node, e.g. ( A )? or [ A ]
+ */
+public class NodeOptional implements Node {
+ public NodeOptional() {
+ node = null;
+ }
+
+ public NodeOptional(Node n) {
+ addNode(n);
+ }
+
+ public void addNode(Node n) {
+ if ( node != null) // Oh oh!
+ throw new Error("Attempt to set optional node twice");
+
+ node = n;
+ }
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+ public boolean present() { return node != null; }
+
+ public Node node;
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeSequence.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,46 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+import java.util.*;
+
+/**
+ * Represents a sequence of nodes nested within a choice, list,
+ * optional list, or optional, e.g. ( A B )+ or [ C D E ]
+ */
+public class NodeSequence implements NodeListInterface {
+ public NodeSequence(int n) {
+ nodes = new Vector<Node>(n);
+ }
+
+ public NodeSequence(Node firstNode) {
+ nodes = new Vector<Node>();
+ addNode(firstNode);
+ }
+
+ public void addNode(Node n) {
+ nodes.addElement(n);
+ }
+
+ 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) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+
+ public Vector<Node> nodes;
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NodeToken.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,88 @@
+//
+// Generated by JTB 1.3.2
+//
+
+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
+ * is used, also contains a Vector of preceding special tokens.
+ */
+public class NodeToken implements Node {
+ public NodeToken(String s) {
+ this(s, -1, -1, -1, -1, -1); }
+
+ public NodeToken(String s, int kind, int beginLine, int beginColumn, int endLine, int endColumn) {
+ tokenImage = s;
+ specialTokens = null;
+ this.kind = kind;
+ this.beginLine = beginLine;
+ this.beginColumn = beginColumn;
+ this.endLine = endLine;
+ this.endColumn = endColumn;
+ }
+
+ public NodeToken getSpecialAt(int i) {
+ if ( specialTokens == null )
+ throw new java.util.NoSuchElementException("No specials in token");
+ return specialTokens.elementAt(i);
+ }
+
+ public int numSpecials() {
+ if ( specialTokens == null ) return 0;
+ return specialTokens.size();
+ }
+
+ public void addSpecial(NodeToken s) {
+ if ( specialTokens == null ) specialTokens = new Vector<NodeToken>();
+ specialTokens.addElement(s);
+ }
+
+ public void trimSpecials() {
+ if ( specialTokens == null ) return;
+ specialTokens.trimToSize();
+ }
+
+ public String toString() { return tokenImage; }
+
+ public String withSpecials() {
+ if ( specialTokens == null )
+ return tokenImage;
+
+ StringBuffer buf = new StringBuffer();
+
+ for ( Enumeration<NodeToken> e = specialTokens.elements(); e.hasMoreElements(); )
+ buf.append(e.nextElement().toString());
+
+ buf.append(tokenImage);
+ return buf.toString();
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+
+ public String tokenImage;
+
+ // Stores a list of NodeTokens
+ public Vector<NodeToken> specialTokens;
+
+ // -1 for these ints means no position info is available.
+ public int beginLine, beginColumn, endLine, endColumn;
+
+ // Equal to the JavaCC token "kind" integer.
+ // -1 if not available.
+ public int kind;
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NormalAnnotation.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,53 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+public class NormalAnnotation implements Node {
+ public NodeToken f0;
+ public Name f1;
+ public NodeToken f2;
+ public NodeOptional f3;
+ public NodeToken f4;
+
+ public NormalAnnotation(NodeToken n0, Name n1, NodeToken n2, NodeOptional n3, NodeToken n4) {
+ f0 = n0;
+ f1 = n1;
+ f2 = n2;
+ f3 = n3;
+ f4 = n4;
+ }
+
+ public NormalAnnotation(Name n0, NodeOptional n1) {
+ f0 = new NodeToken("@");
+ f1 = n0;
+ f2 = new NodeToken("(");
+ f3 = n1;
+ f4 = new NodeToken(")");
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/NullLiteral.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,37 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> "null"
+ */
+public class NullLiteral implements Node {
+ public NodeToken f0;
+
+ public NullLiteral(NodeToken n0) {
+ f0 = n0;
+ }
+
+ public NullLiteral() {
+ f0 = new NodeToken("null");
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/PrimitiveType.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,40 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+public class PrimitiveType implements Node {
+ public NodeChoice f0;
+
+ public PrimitiveType(NodeChoice n0) {
+ f0 = n0;
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/syntaxtree/SingleMemberAnnotation.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,53 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.syntaxtree;
+
+import org.jboss.seam.remoting.annotationparser.visitor.*;
+
+/**
+ * Grammar production:
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+public class SingleMemberAnnotation implements Node {
+ public NodeToken f0;
+ public Name f1;
+ public NodeToken f2;
+ public MemberValue f3;
+ public NodeToken f4;
+
+ public SingleMemberAnnotation(NodeToken n0, Name n1, NodeToken n2, MemberValue n3, NodeToken n4) {
+ f0 = n0;
+ f1 = n1;
+ f2 = n2;
+ f3 = n3;
+ f4 = n4;
+ }
+
+ public SingleMemberAnnotation(Name n0, MemberValue n1) {
+ f0 = new NodeToken("@");
+ f1 = n0;
+ f2 = new NodeToken("(");
+ f3 = n1;
+ f4 = new NodeToken(")");
+ }
+
+ public void accept(Visitor v) {
+ v.visit(this);
+ }
+ public <R,A> R accept(GJVisitor<R,A> v, A argu) {
+ return v.visit(this,argu);
+ }
+ public <R> R accept(GJNoArguVisitor<R> v) {
+ return v.visit(this);
+ }
+ public <A> void accept(GJVoidVisitor<A> v, A argu) {
+ v.visit(this,argu);
+ }
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/DepthFirstVisitor.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,193 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.visitor;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.*;
+
+/**
+ * Provides default methods which visit each node in the tree in depth-first
+ * order. Your visitors may extend this class.
+ */
+public class DepthFirstVisitor implements Visitor {
+ //
+ // Auto class visitors--probably don't need to be overridden.
+ //
+ public void visit(NodeList n) {
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); )
+ e.nextElement().accept(this);
+ }
+
+ public void visit(NodeListOptional n) {
+ if ( n.present() )
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); )
+ e.nextElement().accept(this);
+ }
+
+ public void visit(NodeOptional n) {
+ if ( n.present() )
+ n.node.accept(this);
+ }
+
+ public void visit(NodeSequence n) {
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); )
+ e.nextElement().accept(this);
+ }
+
+ public void visit(NodeToken n) { }
+
+ //
+ // User-generated visitor methods below
+ //
+
+ /**
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+ public void visit(AnnotationsUnit n) {
+ n.f0.accept(this);
+ }
+
+ /**
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+ public void visit(PrimitiveType n) {
+ n.f0.accept(this);
+ }
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+ public void visit(Name n) {
+ n.f0.accept(this);
+ n.f1.accept(this);
+ }
+
+ /**
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+ public void visit(Literal n) {
+ n.f0.accept(this);
+ }
+
+ /**
+ * f0 -> "true"
+ * | "false"
+ */
+ public void visit(BooleanLiteral n) {
+ n.f0.accept(this);
+ }
+
+ /**
+ * f0 -> "null"
+ */
+ public void visit(NullLiteral n) {
+ n.f0.accept(this);
+ }
+
+ /**
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+ public void visit(Annotation n) {
+ n.f0.accept(this);
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+ public void visit(NormalAnnotation n) {
+ n.f0.accept(this);
+ n.f1.accept(this);
+ n.f2.accept(this);
+ n.f3.accept(this);
+ n.f4.accept(this);
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+ public void visit(MarkerAnnotation n) {
+ n.f0.accept(this);
+ n.f1.accept(this);
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+ public void visit(SingleMemberAnnotation n) {
+ n.f0.accept(this);
+ n.f1.accept(this);
+ n.f2.accept(this);
+ n.f3.accept(this);
+ n.f4.accept(this);
+ }
+
+ /**
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+ public void visit(MemberValuePairs n) {
+ n.f0.accept(this);
+ n.f1.accept(this);
+ }
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+ public void visit(MemberValuePair n) {
+ n.f0.accept(this);
+ n.f1.accept(this);
+ n.f2.accept(this);
+ }
+
+ /**
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+ public void visit(MemberValue n) {
+ n.f0.accept(this);
+ }
+
+ /**
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+ public void visit(MemberValueArrayInitializer n) {
+ n.f0.accept(this);
+ n.f1.accept(this);
+ n.f2.accept(this);
+ n.f3.accept(this);
+ n.f4.accept(this);
+ }
+
+}
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJDepthFirst.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,241 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.visitor;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.*;
+
+/**
+ * Provides default methods which visit each node in the tree in depth-first
+ * order. Your visitors may extend this class.
+ */
+public class GJDepthFirst<R,A> implements GJVisitor<R,A> {
+ //
+ // Auto class visitors--probably don't need to be overridden.
+ //
+ public R visit(NodeList n, A argu) {
+ R _ret=null;
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this,argu);
+ _count++;
+ }
+ return _ret;
+ }
+
+ public R visit(NodeListOptional n, A argu) {
+ if ( n.present() ) {
+ R _ret=null;
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this,argu);
+ _count++;
+ }
+ return _ret;
+ }
+ else
+ return null;
+ }
+
+ public R visit(NodeOptional n, A argu) {
+ if ( n.present() )
+ return n.node.accept(this,argu);
+ else
+ return null;
+ }
+
+ public R visit(NodeSequence n, A argu) {
+ R _ret=null;
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this,argu);
+ _count++;
+ }
+ return _ret;
+ }
+
+ public R visit(NodeToken n, A argu) { return null; }
+
+ //
+ // User-generated visitor methods below
+ //
+
+ /**
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+ public R visit(AnnotationsUnit n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+ public R visit(PrimitiveType n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+ public R visit(Name n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+ public R visit(Literal n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "true"
+ * | "false"
+ */
+ public R visit(BooleanLiteral n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "null"
+ */
+ public R visit(NullLiteral n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+ public R visit(Annotation n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+ public R visit(NormalAnnotation 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);
+ n.f4.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+ public R visit(MarkerAnnotation n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+ public R visit(SingleMemberAnnotation 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);
+ n.f4.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+ public R visit(MemberValuePairs n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+ public R visit(MemberValuePair n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ n.f2.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+ public R visit(MemberValue n, A argu) {
+ R _ret=null;
+ n.f0.accept(this, argu);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+ public R visit(MemberValueArrayInitializer 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);
+ n.f4.accept(this, argu);
+ return _ret;
+ }
+
+}
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguDepthFirst.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,241 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.visitor;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.*;
+
+/**
+ * Provides default methods which visit each node in the tree in depth-first
+ * order. Your visitors may extend this class.
+ */
+public class GJNoArguDepthFirst<R> implements GJNoArguVisitor<R> {
+ //
+ // Auto class visitors--probably don't need to be overridden.
+ //
+ public R visit(NodeList n) {
+ R _ret=null;
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this);
+ _count++;
+ }
+ return _ret;
+ }
+
+ public R visit(NodeListOptional n) {
+ if ( n.present() ) {
+ R _ret=null;
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this);
+ _count++;
+ }
+ return _ret;
+ }
+ else
+ return null;
+ }
+
+ public R visit(NodeOptional n) {
+ if ( n.present() )
+ return n.node.accept(this);
+ else
+ return null;
+ }
+
+ public R visit(NodeSequence n) {
+ R _ret=null;
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this);
+ _count++;
+ }
+ return _ret;
+ }
+
+ public R visit(NodeToken n) { return null; }
+
+ //
+ // User-generated visitor methods below
+ //
+
+ /**
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+ public R visit(AnnotationsUnit n) {
+ R _ret=null;
+ n.f0.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+ public R visit(PrimitiveType n) {
+ R _ret=null;
+ n.f0.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+ public R visit(Name n) {
+ R _ret=null;
+ n.f0.accept(this);
+ n.f1.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+ public R visit(Literal n) {
+ R _ret=null;
+ n.f0.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "true"
+ * | "false"
+ */
+ public R visit(BooleanLiteral n) {
+ R _ret=null;
+ n.f0.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "null"
+ */
+ public R visit(NullLiteral n) {
+ R _ret=null;
+ n.f0.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+ public R visit(Annotation n) {
+ R _ret=null;
+ n.f0.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+ public R visit(NormalAnnotation n) {
+ R _ret=null;
+ n.f0.accept(this);
+ n.f1.accept(this);
+ n.f2.accept(this);
+ n.f3.accept(this);
+ n.f4.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+ public R visit(MarkerAnnotation n) {
+ R _ret=null;
+ n.f0.accept(this);
+ n.f1.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+ public R visit(SingleMemberAnnotation n) {
+ R _ret=null;
+ n.f0.accept(this);
+ n.f1.accept(this);
+ n.f2.accept(this);
+ n.f3.accept(this);
+ n.f4.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+ public R visit(MemberValuePairs n) {
+ R _ret=null;
+ n.f0.accept(this);
+ n.f1.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+ public R visit(MemberValuePair n) {
+ R _ret=null;
+ n.f0.accept(this);
+ n.f1.accept(this);
+ n.f2.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+ public R visit(MemberValue n) {
+ R _ret=null;
+ n.f0.accept(this);
+ return _ret;
+ }
+
+ /**
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+ public R visit(MemberValueArrayInitializer n) {
+ R _ret=null;
+ n.f0.accept(this);
+ n.f1.accept(this);
+ n.f2.accept(this);
+ n.f3.accept(this);
+ n.f4.accept(this);
+ return _ret;
+ }
+
+}
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJNoArguVisitor.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,134 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.visitor;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.*;
+
+/**
+ * All GJ visitors with no argument must implement this interface.
+ */
+
+public interface GJNoArguVisitor<R> {
+
+ //
+ // GJ Auto class visitors with no argument
+ //
+
+ public R visit(NodeList n);
+ public R visit(NodeListOptional n);
+ public R visit(NodeOptional n);
+ public R visit(NodeSequence n);
+ public R visit(NodeToken n);
+
+ //
+ // User-generated visitor methods below
+ //
+
+ /**
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+ public R visit(AnnotationsUnit n);
+
+ /**
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+ public R visit(PrimitiveType n);
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+ public R visit(Name n);
+
+ /**
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+ public R visit(Literal n);
+
+ /**
+ * f0 -> "true"
+ * | "false"
+ */
+ public R visit(BooleanLiteral n);
+
+ /**
+ * f0 -> "null"
+ */
+ public R visit(NullLiteral n);
+
+ /**
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+ public R visit(Annotation n);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+ public R visit(NormalAnnotation n);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+ public R visit(MarkerAnnotation n);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+ public R visit(SingleMemberAnnotation n);
+
+ /**
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+ public R visit(MemberValuePairs n);
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+ public R visit(MemberValuePair n);
+
+ /**
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+ public R visit(MemberValue n);
+
+ /**
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+ public R visit(MemberValueArrayInitializer n);
+
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVisitor.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,133 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.visitor;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.*;
+
+/**
+ * All GJ visitors must implement this interface.
+ */
+
+public interface GJVisitor<R,A> {
+
+ //
+ // GJ Auto class visitors
+ //
+
+ public R visit(NodeList n, A argu);
+ public R visit(NodeListOptional n, A argu);
+ public R visit(NodeOptional n, A argu);
+ public R visit(NodeSequence n, A argu);
+ public R visit(NodeToken n, A argu);
+
+ //
+ // User-generated visitor methods below
+ //
+
+ /**
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+ public R visit(AnnotationsUnit n, A argu);
+
+ /**
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+ public R visit(PrimitiveType n, A argu);
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+ public R visit(Name n, A argu);
+
+ /**
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+ public R visit(Literal n, A argu);
+
+ /**
+ * f0 -> "true"
+ * | "false"
+ */
+ public R visit(BooleanLiteral n, A argu);
+
+ /**
+ * f0 -> "null"
+ */
+ public R visit(NullLiteral n, A argu);
+
+ /**
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+ public R visit(Annotation n, A argu);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+ public R visit(NormalAnnotation n, A argu);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+ public R visit(MarkerAnnotation n, A argu);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+ public R visit(SingleMemberAnnotation n, A argu);
+
+ /**
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+ public R visit(MemberValuePairs n, A argu);
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+ public R visit(MemberValuePair n, A argu);
+
+ /**
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+ public R visit(MemberValue n, A argu);
+
+ /**
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+ public R visit(MemberValueArrayInitializer n, A argu);
+
+}
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidDepthFirst.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,203 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.visitor;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.*;
+
+/**
+ * Provides default methods which visit each node in the tree in depth-first
+ * order. Your visitors may extend this class.
+ */
+public class GJVoidDepthFirst<A> implements GJVoidVisitor<A> {
+ //
+ // Auto class visitors--probably don't need to be overridden.
+ //
+ public void visit(NodeList n, A argu) {
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this,argu);
+ _count++;
+ }
+ }
+
+ public void visit(NodeListOptional n, A argu) {
+ if ( n.present() ) {
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this,argu);
+ _count++;
+ }
+ }
+ }
+
+ public void visit(NodeOptional n, A argu) {
+ if ( n.present() )
+ n.node.accept(this,argu);
+ }
+
+ public void visit(NodeSequence n, A argu) {
+ int _count=0;
+ for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
+ e.nextElement().accept(this,argu);
+ _count++;
+ }
+ }
+
+ public void visit(NodeToken n, A argu) {}
+
+ //
+ // User-generated visitor methods below
+ //
+
+ /**
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+ public void visit(AnnotationsUnit n, A argu) {
+ n.f0.accept(this, argu);
+ }
+
+ /**
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+ public void visit(PrimitiveType n, A argu) {
+ n.f0.accept(this, argu);
+ }
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+ public void visit(Name n, A argu) {
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ }
+
+ /**
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+ public void visit(Literal n, A argu) {
+ n.f0.accept(this, argu);
+ }
+
+ /**
+ * f0 -> "true"
+ * | "false"
+ */
+ public void visit(BooleanLiteral n, A argu) {
+ n.f0.accept(this, argu);
+ }
+
+ /**
+ * f0 -> "null"
+ */
+ public void visit(NullLiteral n, A argu) {
+ n.f0.accept(this, argu);
+ }
+
+ /**
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+ public void visit(Annotation n, A argu) {
+ n.f0.accept(this, argu);
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+ public void visit(NormalAnnotation n, A argu) {
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ n.f2.accept(this, argu);
+ n.f3.accept(this, argu);
+ n.f4.accept(this, argu);
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+ public void visit(MarkerAnnotation n, A argu) {
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ }
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+ public void visit(SingleMemberAnnotation n, A argu) {
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ n.f2.accept(this, argu);
+ n.f3.accept(this, argu);
+ n.f4.accept(this, argu);
+ }
+
+ /**
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+ public void visit(MemberValuePairs n, A argu) {
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ }
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+ public void visit(MemberValuePair n, A argu) {
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ n.f2.accept(this, argu);
+ }
+
+ /**
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+ public void visit(MemberValue n, A argu) {
+ n.f0.accept(this, argu);
+ }
+
+ /**
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+ public void visit(MemberValueArrayInitializer n, A argu) {
+ n.f0.accept(this, argu);
+ n.f1.accept(this, argu);
+ n.f2.accept(this, argu);
+ n.f3.accept(this, argu);
+ n.f4.accept(this, argu);
+ }
+
+}
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/GJVoidVisitor.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,134 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.visitor;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.*;
+
+/**
+ * All GJ void visitors must implement this interface.
+ */
+
+public interface GJVoidVisitor<A> {
+
+ //
+ // GJ void Auto class visitors
+ //
+
+ public void visit(NodeList n, A argu);
+ public void visit(NodeListOptional n, A argu);
+ public void visit(NodeOptional n, A argu);
+ public void visit(NodeSequence n, A argu);
+ public void visit(NodeToken n, A argu);
+
+ //
+ // User-generated visitor methods below
+ //
+
+ /**
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+ public void visit(AnnotationsUnit n, A argu);
+
+ /**
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+ public void visit(PrimitiveType n, A argu);
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+ public void visit(Name n, A argu);
+
+ /**
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+ public void visit(Literal n, A argu);
+
+ /**
+ * f0 -> "true"
+ * | "false"
+ */
+ public void visit(BooleanLiteral n, A argu);
+
+ /**
+ * f0 -> "null"
+ */
+ public void visit(NullLiteral n, A argu);
+
+ /**
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+ public void visit(Annotation n, A argu);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+ public void visit(NormalAnnotation n, A argu);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+ public void visit(MarkerAnnotation n, A argu);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+ public void visit(SingleMemberAnnotation n, A argu);
+
+ /**
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+ public void visit(MemberValuePairs n, A argu);
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+ public void visit(MemberValuePair n, A argu);
+
+ /**
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+ public void visit(MemberValue n, A argu);
+
+ /**
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+ public void visit(MemberValueArrayInitializer n, A argu);
+
+}
+
Added: 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 (rev 0)
+++ modules/trunk/remoting/src/main/java/org/jboss/seam/remoting/annotationparser/visitor/Visitor.java 2009-12-01 00:35:25 UTC (rev 11705)
@@ -0,0 +1,134 @@
+//
+// Generated by JTB 1.3.2
+//
+
+package org.jboss.seam.remoting.annotationparser.visitor;
+import org.jboss.seam.remoting.annotationparser.syntaxtree.*;
+import java.util.*;
+
+/**
+ * All void visitors must implement this interface.
+ */
+
+public interface Visitor {
+
+ //
+ // void Auto class visitors
+ //
+
+ public void visit(NodeList n);
+ public void visit(NodeListOptional n);
+ public void visit(NodeOptional n);
+ public void visit(NodeSequence n);
+ public void visit(NodeToken n);
+
+ //
+ // User-generated visitor methods below
+ //
+
+ /**
+ * f0 -> [ Annotation() ( "," Annotation() )* ]
+ */
+ public void visit(AnnotationsUnit n);
+
+ /**
+ * f0 -> "boolean"
+ * | "char"
+ * | "byte"
+ * | "short"
+ * | "int"
+ * | "long"
+ * | "float"
+ * | "double"
+ */
+ public void visit(PrimitiveType n);
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> ( "." <IDENTIFIER> )*
+ */
+ public void visit(Name n);
+
+ /**
+ * f0 -> <INTEGER_LITERAL>
+ * | <FLOATING_POINT_LITERAL>
+ * | <CHARACTER_LITERAL>
+ * | <STRING_LITERAL>
+ * | BooleanLiteral()
+ * | NullLiteral()
+ */
+ public void visit(Literal n);
+
+ /**
+ * f0 -> "true"
+ * | "false"
+ */
+ public void visit(BooleanLiteral n);
+
+ /**
+ * f0 -> "null"
+ */
+ public void visit(NullLiteral n);
+
+ /**
+ * f0 -> NormalAnnotation()
+ * | SingleMemberAnnotation()
+ * | MarkerAnnotation()
+ */
+ public void visit(Annotation n);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> [ MemberValuePairs() ]
+ * f4 -> ")"
+ */
+ public void visit(NormalAnnotation n);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ */
+ public void visit(MarkerAnnotation n);
+
+ /**
+ * f0 -> "@"
+ * f1 -> Name()
+ * f2 -> "("
+ * f3 -> MemberValue()
+ * f4 -> ")"
+ */
+ public void visit(SingleMemberAnnotation n);
+
+ /**
+ * f0 -> MemberValuePair()
+ * f1 -> ( "," MemberValuePair() )*
+ */
+ public void visit(MemberValuePairs n);
+
+ /**
+ * f0 -> <IDENTIFIER>
+ * f1 -> "="
+ * f2 -> MemberValue()
+ */
+ public void visit(MemberValuePair n);
+
+ /**
+ * f0 -> Annotation()
+ * | MemberValueArrayInitializer()
+ * | Literal()
+ */
+ public void visit(MemberValue n);
+
+ /**
+ * f0 -> "{"
+ * f1 -> MemberValue()
+ * f2 -> ( "," MemberValue() )*
+ * f3 -> [ "," ]
+ * f4 -> "}"
+ */
+ public void visit(MemberValueArrayInitializer n);
+
+}
+
Modified: modules/trunk/remoting/src/main/javacc/AnnotationParser.jj
===================================================================
--- modules/trunk/remoting/src/main/javacc/AnnotationParser.jj 2009-11-30 14:23:32 UTC (rev 11704)
+++ modules/trunk/remoting/src/main/javacc/AnnotationParser.jj 2009-12-01 00:35:25 UTC (rev 11705)
@@ -314,25 +314,7 @@
| < ELLIPSIS: "..." >
}
-/* >'s need special attention due to generics syntax. */
-TOKEN :
-{
- < RUNSIGNEDSHIFT: ">>>" >
- {
- matchedToken.kind = GT;
- ((Token.GTToken)matchedToken).realKind = RUNSIGNEDSHIFT;
- input_stream.backup(2);
- }
-| < RSIGNEDSHIFT: ">>" >
- {
- matchedToken.kind = GT;
- ((Token.GTToken)matchedToken).realKind = RSIGNEDSHIFT;
- input_stream.backup(1);
- }
-| < GT: ">" >
-}
-
/***********************************
* ANNOTATIONS GRAMMAR STARTS HERE *
***********************************/
@@ -344,7 +326,7 @@
void AnnotationsUnit():
{}
{
- "(" [ Annotation() ( "," Annotation() )* ] ")"
+ [ Annotation() ( "," Annotation() )* ]
}
void PrimitiveType():
15 years