- Revision
- 676
- Author
- rfscholte
- Date
- 2009-10-12 10:13:33 -0500 (Mon, 12 Oct 2009)
Log Message
fix for QDOX-178: Access parameter annotations
Modified Paths
- trunk/qdox/src/grammar/parser.y
- trunk/qdox/src/java/com/thoughtworks/qdox/JavaDocBuilder.java
- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaMethod.java
- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaParameter.java
- trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilder.java
- trunk/qdox/src/java/com/thoughtworks/qdox/parser/Builder.java
- trunk/qdox/src/test/com/thoughtworks/qdox/AnnotationsTest.java
- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java
- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaMethodTest.java
- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaParameterTest.java
- trunk/qdox/src/test/com/thoughtworks/qdox/model/ModelBuilderTest.java
- trunk/qdox/src/test/com/thoughtworks/qdox/parser/MockBuilder.java
- trunk/qdox/src/test/com/thoughtworks/qdox/parser/ParserTest.java
Diff
Modified: trunk/qdox/src/grammar/parser.y (675 => 676)
--- trunk/qdox/src/grammar/parser.y 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/grammar/parser.y 2009-10-12 15:13:33 UTC (rev 676) @@ -466,34 +466,40 @@ // ----- METHOD method: - modifiers typeparams type IDENTIFIER methoddef dimensions opt_exceptions memberend { + modifiers typeparams type IDENTIFIER { + builder.beginMethod(); + } methoddef dimensions opt_exceptions memberend { mth.lineNumber = line; mth.modifiers.addAll(modifiers); modifiers.clear(); mth.returnType = $3; - mth.dimensions = $6; + mth.dimensions = $7; mth.name = $4; - mth.body = $8; - builder.addMethod(mth); + mth.body = $9; + builder.endMethod(mth); mth = new MethodDef(); } | - modifiers type IDENTIFIER methoddef dimensions opt_exceptions memberend { + modifiers type IDENTIFIER { + builder.beginMethod(); + } methoddef dimensions opt_exceptions memberend { mth.lineNumber = line; mth.modifiers.addAll(modifiers); modifiers.clear(); mth.returnType = $2; - mth.dimensions = $5; + mth.dimensions = $6; mth.name = $3; - mth.body = $7; - builder.addMethod(mth); + mth.body = $8; + builder.endMethod(mth); mth = new MethodDef(); }; constructor: - modifiers IDENTIFIER methoddef opt_exceptions memberend { + modifiers IDENTIFIER { + builder.beginMethod(); + } methoddef opt_exceptions memberend { mth.lineNumber = line; mth.modifiers.addAll(modifiers); modifiers.clear(); mth.constructor = true; mth.name = $2; - mth.body = $5; - builder.addMethod(mth); + mth.body = $6; + builder.endMethod(mth); mth = new MethodDef(); }; @@ -517,7 +523,7 @@ param.type = $3; param.dimensions = $5.dimensions; param.isVarArgs = $4; - mth.params.add(param); + builder.addParameter(param); param = new FieldDef(); }; @@ -525,7 +531,7 @@ /* empty */ { $$ = false; } | DOTDOTDOT { $$ = true; } ; -opt_annotations: | opt_annotations annotation; +opt_annotations: | opt_annotations annotation { builder.addAnnotation((Annotation) $2); }; opt_parammodifiers: | opt_parammodifiers modifier { param.modifiers.add($2); };
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/JavaDocBuilder.java (675 => 676)
--- trunk/qdox/src/java/com/thoughtworks/qdox/JavaDocBuilder.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/java/com/thoughtworks/qdox/JavaDocBuilder.java 2009-10-12 15:13:33 UTC (rev 676) @@ -274,15 +274,15 @@ Class exception = exceptions[j]; methodDef.exceptions.add(exception.getName()); } + binaryBuilder.addMethod(methodDef); for (int j = 0; j < parameterTypes.length; j++) { FieldDef param = new FieldDef(); Class parameterType = parameterTypes[j]; param.name = "p" + j; param.type = getTypeDef(parameterType); param.dimensions = getDimension(parameterType); - methodDef.params.add(param); + binaryBuilder.addParameter( param ); } - binaryBuilder.addMethod(methodDef); } private static final int getDimension(Class c) {
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaMethod.java (675 => 676)
--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaMethod.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaMethod.java 2009-10-12 15:13:33 UTC (rev 676) @@ -1,6 +1,7 @@ package com.thoughtworks.qdox.model; import java.beans.Introspector; +import java.util.LinkedList; import java.util.List; import java.util.ArrayList; @@ -8,7 +9,8 @@ private TypeVariable[] typeParameters = TypeVariable.EMPTY_ARRAY; private Type returns = Type.VOID; - private JavaParameter[] parameters = JavaParameter.EMPTY_ARRAY; + private List parameters = new LinkedList(); + private JavaParameter[] parametersArray = JavaParameter.EMPTY_ARRAY; private Type[] exceptions = Type.EMPTY_ARRAY; private boolean constructor; private String sourceCode; @@ -30,7 +32,11 @@ } public JavaParameter[] getParameters() { - return parameters; + if(parametersArray == null) { + parametersArray = new JavaParameter[parameters.size()]; + parameters.toArray( parametersArray ); + } + return parametersArray; } public JavaParameter getParameterByName(String name) { @@ -73,8 +79,8 @@ result.write(name); result.write('('); - for (int i = 0; i < parameters.length; i++) { - JavaParameter parameter = parameters[i]; + for (int i = 0; i < getParameters().length; i++) { + JavaParameter parameter = parametersArray[i]; if (i > 0) result.write(", "); if (isDeclaration) { result.write(parameter.getType().toString()); @@ -136,11 +142,10 @@ this.returns = returns; } - public void setParameters(JavaParameter[] parameters) { - for (int i = 0; i < parameters.length; i++) { - parameters[i].setParentMethod(this); - } - this.parameters = parameters; + public void addParameter(JavaParameter javaParameter) { + javaParameter.setParentMethod( this ); + parameters.add( javaParameter ); + parametersArray = null; } public void setExceptions(Type[] exceptions) { @@ -180,10 +185,10 @@ */ public boolean signatureMatches(String name, Type[] parameterTypes) { if (!name.equals(this.name)) return false; - parameterTypes = parameterTypes == null ? new Type[0] : parameterTypes; - if (parameterTypes.length != this.parameters.length) return false; - for (int i = 0; i < parameters.length; i++) { - if (!parameters[i].getType().equals(parameterTypes[i])) { + parameterTypes = (parameterTypes == null ? new Type[0] : parameterTypes); + if (parameterTypes.length != this.getParameters().length) return false; + for (int i = 0; i < parametersArray.length; i++) { + if (!parametersArray[i].getType().equals(parameterTypes[i])) { return false; } }
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaParameter.java (675 => 676)
--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaParameter.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaParameter.java 2009-10-12 15:13:33 UTC (rev 676) @@ -2,7 +2,7 @@ import java.io.Serializable; -public class JavaParameter implements Serializable { +public class JavaParameter extends AbstractBaseJavaEntity implements Serializable { public static final JavaParameter[] EMPTY_ARRAY = new JavaParameter[0];
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilder.java (675 => 676)
--- trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilder.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilder.java 2009-10-12 15:13:33 UTC (rev 676) @@ -32,6 +32,7 @@ private final JavaSource source; private JavaClassParent currentParent; private JavaClass currentClass; + private JavaMethod currentMethod; private List currentAnnoDefs; private String lastComment; private List lastTagSet; @@ -187,7 +188,16 @@ } public void addMethod(MethodDef def) { - JavaMethod currentMethod = new JavaMethod(); + beginMethod(); + endMethod(def); + } + + public void beginMethod() { + currentMethod = new JavaMethod(); + setAnnotations(currentMethod); + } + + public void endMethod(MethodDef def) { currentMethod.setParentClass(currentClass); currentMethod.setLineNumber(def.lineNumber); @@ -207,17 +217,6 @@ currentMethod.setTypeParameters(typeParams); } - // parameters - { - JavaParameter[] params = new JavaParameter[def.params.size()]; - int i = 0; - for (Iterator iterator = def.params.iterator(); iterator.hasNext();) { - FieldDef fieldDef = (FieldDef) iterator.next(); - params[i++] = new JavaParameter(createType(fieldDef.type, fieldDef.dimensions), fieldDef.name, fieldDef.isVarArgs); - } - currentMethod.setParameters(params); - } - // exceptions { Type[] exceptions = new Type[def.exceptions.size()]; @@ -240,9 +239,6 @@ // javadoc addJavaDoc(currentMethod); - // annotations - setAnnotations( currentMethod ); - currentClass.addMethod(currentMethod); } @@ -287,6 +283,12 @@ currentClass.addField(currentField); } + + public void addParameter(FieldDef fieldDef) { + JavaParameter jParam = new JavaParameter(createType(fieldDef.type, fieldDef.dimensions), fieldDef.name, fieldDef.isVarArgs); + setAnnotations( jParam ); + currentMethod.addParameter( jParam ); + } private void setAnnotations( final AbstractBaseJavaEntity entity ) { if( !currentAnnoDefs.isEmpty() ) {
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/parser/Builder.java (675 => 676)
--- trunk/qdox/src/java/com/thoughtworks/qdox/parser/Builder.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/java/com/thoughtworks/qdox/parser/Builder.java 2009-10-12 15:13:33 UTC (rev 676) @@ -23,8 +23,11 @@ void endClass(); - void addMethod(MethodDef def); + void beginMethod(); + void endMethod(MethodDef def); + void addParameter(FieldDef def); + void addField(FieldDef def); void addAnnotation(Annotation annotation);
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/AnnotationsTest.java (675 => 676)
--- trunk/qdox/src/test/com/thoughtworks/qdox/AnnotationsTest.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/test/com/thoughtworks/qdox/AnnotationsTest.java 2009-10-12 15:13:33 UTC (rev 676) @@ -4,6 +4,7 @@ import junit.framework.TestCase; +import com.thoughtworks.qdox.model.Annotation; import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.JavaMethod; import com.thoughtworks.qdox.model.Type; @@ -228,4 +229,17 @@ "}"; builder.addSource(new StringReader(source)); } + + public void testParameterAnnotations() throws Exception { + String source = "class Foo {\n" + + " @NativeAccessible\n" + + " static void get_tmp_dir( String targetfilename, @ParamInfo( direction = ParamInfo.Direction.OUT ) byte[] tmpDirOutput ) throws IOException {}\n" + + "}"; + builder.addSource( new StringReader( source ) ); + JavaMethod jMethod = builder.getClasses()[0].getMethods()[0]; + assertEquals( "NativeAccessible", jMethod.getAnnotations()[0].getType().getValue() ); + Annotation annotation = jMethod.getParameters()[1].getAnnotations()[0]; + assertEquals( "ParamInfo", annotation.getType().getValue() ); + assertEquals( "ParamInfo.Direction.OUT", annotation.getProperty( "direction" ).getParameterValue() ); + } }
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java (675 => 676)
--- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java 2009-10-12 15:13:33 UTC (rev 676) @@ -435,11 +435,8 @@ JavaMethod method = new JavaMethod(); method.setReturns(new Type("void")); method.setName("doStuff"); - JavaParameter[] parameters = { - new JavaParameter(new Type("int"), "x"), - new JavaParameter(new Type("double"), "y"), - }; - method.setParameters(parameters); + method.addParameter( new JavaParameter(new Type("int"), "x") ); + method.addParameter( new JavaParameter(new Type("double"), "y") ); cls.addMethod(method); Type[] correctTypes = type(new String[]{"int", "double"}); @@ -487,11 +484,7 @@ public void testGetBeanPropertiesFindsSimpleProperties() throws Exception { JavaMethod setFooMethod = new JavaMethod("setFoo"); - setFooMethod.setParameters( - new JavaParameter[] { - new JavaParameter(new Type("int"), "foo") - } - ); + setFooMethod.addParameter(new JavaParameter(new Type("int"), "foo")); cls.addMethod(setFooMethod); JavaMethod getFooMethod = new JavaMethod(new Type("int"), "getFoo");
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaMethodTest.java (675 => 676)
--- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaMethodTest.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaMethodTest.java 2009-10-12 15:13:33 UTC (rev 676) @@ -47,10 +47,8 @@ new Type("FishException"), new Type("FruitException"), }); - mth.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int"), "count"), - new JavaParameter(new Type("MyThing"), "t") - }); + mth.addParameter(new JavaParameter(new Type("int"), "count")); + mth.addParameter(new JavaParameter(new Type("MyThing"), "t")); } public void testGetCodeBlockSimple() throws Exception { @@ -62,28 +60,24 @@ public void testGetCodeBlockOneParam() throws Exception { mth.setName("blah"); mth.setReturns(new Type("void")); - mth.setParameters(new JavaParameter[]{new JavaParameter(new Type("String"), "thingy")}); + mth.addParameter(new JavaParameter(new Type("String"), "thingy")); assertEquals("void blah(String thingy);\n", mth.getCodeBlock()); } public void testGetCodeBlockTwoParams() throws Exception { mth.setName("blah"); mth.setReturns(new Type("void")); - mth.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int"), "count"), - new JavaParameter(new Type("MyThing"), "t") - }); + mth.addParameter(new JavaParameter(new Type("int"), "count")); + mth.addParameter(new JavaParameter(new Type("MyThing"), "t")); assertEquals("void blah(int count, MyThing t);\n", mth.getCodeBlock()); } public void testGetCodeBlockThreeParams() throws Exception { mth.setName("blah"); mth.setReturns(new Type("void")); - mth.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int"), "count"), - new JavaParameter(new Type("MyThing"), "t"), - new JavaParameter(new Type("java.lang.Meat"), "beef") - }); + mth.addParameter(new JavaParameter(new Type("int"), "count")); + mth.addParameter(new JavaParameter(new Type("MyThing"), "t")); + mth.addParameter(new JavaParameter(new Type("java.lang.Meat"), "beef")); assertEquals("void blah(int count, MyThing t, java.lang.Meat beef);\n", mth.getCodeBlock()); } @@ -149,10 +143,8 @@ public void testGetCodeBlockParamArray() throws Exception { mth.setName("blah"); mth.setReturns(new Type("void")); - mth.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 2), "count"), - new JavaParameter(new Type("MyThing", 1), "t") - }); + mth.addParameter(new JavaParameter(new Type("int", 2), "count")); + mth.addParameter(new JavaParameter(new Type("MyThing", 1), "t")); assertEquals("void blah(int[][] count, MyThing[] t);\n", mth.getCodeBlock()); } @@ -209,46 +201,36 @@ public void testEqualsWithParameters() throws Exception { mth.setName("thing"); - mth.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 1), "blah"), - new JavaParameter(new Type("java.lang.String", 2), "thing"), - new JavaParameter(new Type("X", 3), "") - }); + mth.addParameter(new JavaParameter(new Type("int", 1), "blah")); + mth.addParameter(new JavaParameter(new Type("java.lang.String", 2), "thing")); + mth.addParameter(new JavaParameter(new Type("X", 3), "")); mth.setReturns(new Type("void")); JavaMethod m2 = new JavaMethod(); m2.setName("thing"); - m2.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 1), "blah"), - new JavaParameter(new Type("java.lang.String", 2), "anotherName"), - new JavaParameter(new Type("X", 3), "blah") - }); + m2.addParameter(new JavaParameter(new Type("int", 1), "blah")); + m2.addParameter(new JavaParameter(new Type("java.lang.String", 2), "anotherName")); + m2.addParameter(new JavaParameter(new Type("X", 3), "blah")); m2.setReturns(new Type("void")); JavaMethod m3 = new JavaMethod(); m3.setName("thing"); - m3.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 1), "blah"), - new JavaParameter(new Type("java.lang.String", 2), "thing"), - }); + m3.addParameter(new JavaParameter(new Type("int", 1), "blah")); + m3.addParameter(new JavaParameter(new Type("java.lang.String", 2), "thing")); m3.setReturns(new Type("void")); JavaMethod m4 = new JavaMethod(); m4.setName("thing"); - m4.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 1), "blah"), - new JavaParameter(new Type("java.lang.String", 2), "thing"), - new JavaParameter(new Type("TTTTTTTT", 3), "blah") // name - }); + m4.addParameter(new JavaParameter(new Type("int", 1), "blah")); + m4.addParameter(new JavaParameter(new Type("java.lang.String", 2), "thing")); + m4.addParameter(new JavaParameter(new Type("TTTTTTTT", 3), "blah")); //name m4.setReturns(new Type("void")); JavaMethod m5 = new JavaMethod(); m5.setName("thing"); - m5.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 1), "blah"), - new JavaParameter(new Type("java.lang.String", 2), "thing"), - new JavaParameter(new Type("X", 9), "blah") // dimension - }); + m5.addParameter(new JavaParameter(new Type("int", 1), "blah")); + m5.addParameter(new JavaParameter(new Type("java.lang.String", 2), "thing")); + m5.addParameter(new JavaParameter(new Type("X", 9), "blah")); // dimension m5.setReturns(new Type("void")); assertEquals(mth, m2); @@ -260,28 +242,22 @@ public void testHashCode() throws Exception { mth.setName("thing"); - mth.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 1), "blah"), - new JavaParameter(new Type("java.lang.String", 2), "thing"), - new JavaParameter(new Type("X", 3), "") - }); + mth.addParameter(new JavaParameter(new Type("int", 1), "blah")); + mth.addParameter(new JavaParameter(new Type("java.lang.String", 2), "thing")); + mth.addParameter(new JavaParameter(new Type("X", 3), "")); mth.setReturns(new Type("void")); JavaMethod m2 = new JavaMethod(); m2.setName("thing"); - m2.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 1), "blah"), - new JavaParameter(new Type("java.lang.String", 2), "anotherName"), - new JavaParameter(new Type("X", 3), "blah") - }); + m2.addParameter(new JavaParameter(new Type("int", 1), "blah")); + m2.addParameter(new JavaParameter(new Type("java.lang.String", 2), "anotherName")); + m2.addParameter(new JavaParameter(new Type("X", 3), "blah")); m2.setReturns(new Type("void")); JavaMethod m3 = new JavaMethod(); m3.setName("thing"); - m3.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int", 1), "blah"), - new JavaParameter(new Type("java.lang.String", 2), "thing"), - }); + m3.addParameter(new JavaParameter(new Type("int", 1), "blah")); + m3.addParameter(new JavaParameter(new Type("java.lang.String", 2), "thing")); m3.setReturns(new Type("void")); JavaMethod c1 = new JavaMethod(); @@ -299,10 +275,8 @@ public void testSignatureMatches() throws Exception { mth.setName("thing"); - mth.setParameters(new JavaParameter[]{ - new JavaParameter(new Type("int"), "x"), - new JavaParameter(new Type("long", 2), "y") - }); + mth.addParameter(new JavaParameter(new Type("int"), "x")); + mth.addParameter(new JavaParameter(new Type("long", 2), "y")); mth.setReturns(new Type("void")); Type[] correctTypes = new Type[]{ @@ -332,14 +306,10 @@ } public void testCanGetParameterByName() throws Exception { - JavaParameter paramX = - new JavaParameter(new Type("int"), "x"); - JavaParameter[] parameters = new JavaParameter[]{ - paramX, - new JavaParameter(new Type("string"), "y") - }; - mth.setParameters(parameters); - + JavaParameter paramX = new JavaParameter(new Type("int"), "x"); + mth.addParameter(paramX); + mth.addParameter(new JavaParameter(new Type("string"), "y")); + assertEquals(paramX, mth.getParameterByName("x")); assertEquals(null, mth.getParameterByName("z")); } @@ -349,8 +319,7 @@ JavaMethod mthd = new JavaMethod(new Type("boolean"),"equals"); cls.addMethod(mthd); mthd.setModifiers(new String[]{"public"}); - JavaParameter prmtr = new JavaParameter(new Type("java.lang.Object"), null); - mthd.setParameters(new JavaParameter[] {prmtr}); + mthd.addParameter(new JavaParameter(new Type("java.lang.Object"), null)); assertEquals("public boolean java.lang.Object.equals(java.lang.Object)", mthd.toString()); }
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaParameterTest.java (675 => 676)
--- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaParameterTest.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaParameterTest.java 2009-10-12 15:13:33 UTC (rev 676) @@ -13,7 +13,7 @@ assertNull(p.getParentMethod()); JavaMethod m = new JavaMethod(); - m.setParameters(new JavaParameter[]{p}); + m.addParameter(p); assertSame(m, p.getParentMethod()); }
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/model/ModelBuilderTest.java (675 => 676)
--- trunk/qdox/src/test/com/thoughtworks/qdox/model/ModelBuilderTest.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/test/com/thoughtworks/qdox/model/ModelBuilderTest.java 2009-10-12 15:13:33 UTC (rev 676) @@ -366,18 +366,19 @@ builder.beginClass(new ClassDef()); MethodDef mth = new MethodDef(); + builder.addMethod(mth); + FieldDef f1 = new FieldDef(); f1.name = "count"; f1.type = new TypeDef("int"); f1.modifiers.add("final"); - mth.params.add(f1); + builder.addParameter( f1 ); FieldDef f2 = new FieldDef(); f2.name = "name"; f2.type = new TypeDef("String"); - mth.params.add(f2); + builder.addParameter( f2 ); - builder.addMethod(mth); builder.endClass(); JavaSource source = builder.getSource(); @@ -392,21 +393,22 @@ public void testMethodParametersWithArrays() throws Exception { builder.beginClass(new ClassDef()); MethodDef mth = new MethodDef(); + builder.addMethod(mth); FieldDef f1 = new FieldDef(); f1.name = "count"; f1.type = new TypeDef("int"); f1.modifiers.add("final"); f1.dimensions = 1; - mth.params.add(f1); + builder.addParameter( f1 ); + FieldDef f2 = new FieldDef(); f2.name = "name"; f2.type = new TypeDef("String"); f2.dimensions = 2; - mth.params.add(f2); + builder.addParameter( f2 ); - builder.addMethod(mth); builder.endClass(); JavaSource source = builder.getSource();
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/parser/MockBuilder.java (675 => 676)
--- trunk/qdox/src/test/com/thoughtworks/qdox/parser/MockBuilder.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/test/com/thoughtworks/qdox/parser/MockBuilder.java 2009-10-12 15:13:33 UTC (rev 676) @@ -25,11 +25,15 @@ private ExpectationCounter myBeginClassCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder BeginClassCalls"); private ExpectationList myBeginClassParameter0Values = new ExpectationList("com.thoughtworks.qdox.parser.Builder.beginClass() : com.thoughtworks.qdox.parser.structs.ClassDef def"); private ExpectationCounter myEndClassCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder EndClassCalls"); - private ExpectationCounter myAddMethodCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder AddMethodCalls"); - private ExpectationList myAddMethodParameter0Values = new ExpectationList("com.thoughtworks.qdox.parser.Builder.addMethod() : com.thoughtworks.qdox.parser.structs.MethodDef def"); + private ExpectationCounter myBeginMethodCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder BeginMethodCalls"); + private ExpectationCounter myEndMethodCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder EndMethodCalls"); + private ExpectationList myEndMethodParameter0Values = new ExpectationList("com.thoughtworks.qdox.parser.Builder.endMethod() : com.thoughtworks.qdox.parser.structs.MethodDef def"); private ExpectationCounter myAddFieldCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder AddFieldCalls"); private ExpectationList myAddFieldParameter0Values = new ExpectationList("com.thoughtworks.qdox.parser.Builder.addField() : com.thoughtworks.qdox.parser.structs.FieldDef def"); + private ExpectationCounter myAddParameterCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder AddParameterCalls"); + private ExpectationList myAddParameter0Values = new ExpectationList("com.thoughtworks.qdox.parser.Builder.addParameter() : com.thoughtworks.qdox.parser.structs.FieldDef def"); + public void setExpectedAddPackageCalls(int calls) { myAddPackageCalls.setExpected(calls); } @@ -103,17 +107,20 @@ myEndClassCalls.inc(); } - public void setExpectedAddMethodCalls(int calls) { - myAddMethodCalls.setExpected(calls); + public void beginMethod() { + myBeginMethodCalls.inc(); } + public void setExpectedEndMethodCalls(int calls) { + myEndMethodCalls.setExpected(calls); + } public void addExpectedAddMethodValues(MethodDef arg0) { - myAddMethodParameter0Values.addExpected(arg0); + myEndMethodParameter0Values.addExpected(arg0); } - public void addMethod(MethodDef arg0) { - myAddMethodCalls.inc(); - myAddMethodParameter0Values.addActual(arg0); + public void endMethod(MethodDef arg0) { + myEndMethodCalls.inc(); + myEndMethodParameter0Values.addActual(arg0); } public void setExpectedAddFieldCalls(int calls) { @@ -146,8 +153,9 @@ myBeginClassCalls.verify(); myBeginClassParameter0Values.verify(); myEndClassCalls.verify(); - myAddMethodCalls.verify(); - myAddMethodParameter0Values.verify(); + myBeginMethodCalls.verify(); + myEndMethodCalls.verify(); + myEndMethodParameter0Values.verify(); myAddFieldCalls.verify(); myAddFieldParameter0Values.verify(); } @@ -160,4 +168,16 @@ return null; } + public void setExpectedAddParameterCalls(int calls) { + myAddParameterCalls.setExpected(calls); + } + + public void addExpectedAddParameterValues(FieldDef arg0) { + myAddParameter0Values.addExpected(arg0); + } + + public void addParameter(FieldDef arg0) { + myAddParameterCalls.inc(); + myAddParameter0Values.addActual(arg0); + } }
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/parser/ParserTest.java (675 => 676)
--- trunk/qdox/src/test/com/thoughtworks/qdox/parser/ParserTest.java 2009-10-12 08:43:47 UTC (rev 675) +++ trunk/qdox/src/test/com/thoughtworks/qdox/parser/ParserTest.java 2009-10-12 15:13:33 UTC (rev 676) @@ -1067,8 +1067,9 @@ FieldDef p1 = new FieldDef(); p1.name = "numberOfTimes"; p1.type = new TypeDef("int"); - mth.params.add(p1); + builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues( p1 ); // execute Parser parser = new Parser(lexer, builder); @@ -1107,8 +1108,9 @@ FieldDef p1 = new FieldDef(); p1.name = "numberOfTimes"; p1.type = new TypeDef("java.lang.String"); - mth.params.add(p1); + builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues( p1 ); // execute Parser parser = new Parser(lexer, builder); @@ -1146,12 +1148,12 @@ FieldDef p1 = new FieldDef(); p1.name = "numberOfTimes"; p1.type = new TypeDef("int"); - mth.params.add(p1); FieldDef p2 = new FieldDef(); p2.name = "name"; p2.type = new TypeDef("String"); - mth.params.add(p2); builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues( p1 ); + builder.addExpectedAddParameterValues( p2 ); // execute Parser parser = new Parser(lexer, builder); @@ -1192,16 +1194,16 @@ FieldDef p1 = new FieldDef(); p1.name = "numberOfTimes"; p1.type = new TypeDef("int"); - mth.params.add(p1); FieldDef p2 = new FieldDef(); p2.name = "name"; p2.type = new TypeDef("String"); - mth.params.add(p2); FieldDef p3 = new FieldDef(); p3.name = "x"; p3.type = new TypeDef("boolean"); - mth.params.add(p3); builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues( p1 ); + builder.addExpectedAddParameterValues( p2 ); + builder.addExpectedAddParameterValues( p3 ); // execute Parser parser = new Parser(lexer, builder); @@ -1240,9 +1242,9 @@ p1.type = new TypeDef("int"); p1.modifiers.add("final"); p1.modifiers.add("volatile"); - mth.params.add(p1); builder.addExpectedAddMethodValues(mth); - + builder.addExpectedAddParameterValues( p1 ); + // execute Parser parser = new Parser(lexer, builder); parser.parse(); @@ -1495,9 +1497,9 @@ FieldDef p1 = new FieldDef(); p1.name = "count"; p1.type = new TypeDef("int"); - mth.params.add(p1); builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues( p1 ); // execute Parser parser = new Parser(lexer, builder); @@ -1540,14 +1542,14 @@ FieldDef p1 = new FieldDef(); p1.name = "count"; p1.type = new TypeDef("int"); - mth.params.add(p1); FieldDef p2 = new FieldDef(); p2.name = "thingy"; p2.type = new TypeDef("java.lang.String"); - mth.params.add(p2); builder.addExpectedAddMethodValues(mth); - + builder.addExpectedAddParameterValues( p1 ); + builder.addExpectedAddParameterValues( p2 ); + // execute Parser parser = new Parser(lexer, builder); parser.parse(); @@ -2279,9 +2281,9 @@ p1.name = "p1"; p1.type = new TypeDef("int"); p1.dimensions = 0; - mth.params.add(p1); builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues( p1 ); // execute Parser parser = new Parser(lexer, builder); @@ -2322,9 +2324,9 @@ p1.name = "p1"; p1.type = new TypeDef("int"); p1.dimensions = 1; - mth.params.add(p1); builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues( p1 ); // execute Parser parser = new Parser(lexer, builder); @@ -2369,9 +2371,9 @@ p1.name = "p1"; p1.type = new TypeDef("int"); p1.dimensions = 2; - mth.params.add(p1); builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues( p1 ); // execute Parser parser = new Parser(lexer, builder); @@ -2411,9 +2413,9 @@ p1.type = new TypeDef("int"); p1.dimensions = 0; p1.isVarArgs = true; - mth.params.add(p1); builder.addExpectedAddMethodValues(mth); + builder.addExpectedAddParameterValues(p1); // execute Parser parser = new Parser(lexer, builder);
To unsubscribe from this list please visit:
