Title: [1080] trunk/qdox/src/java/com/thoughtworks/qdox/model: Prepare Builder for JavaConstructor

Diff

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/builder/Builder.java (1079 => 1080)

--- trunk/qdox/src/java/com/thoughtworks/qdox/builder/Builder.java	2011-02-26 11:30:33 UTC (rev 1079)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/builder/Builder.java	2011-02-26 11:31:17 UTC (rev 1080)
@@ -42,6 +42,9 @@
     void beginClass(ClassDef def);
     void endClass();
 
+    void beginConstructor();
+    void endConstructor(MethodDef def);
+
     void beginMethod();
     void endMethod(MethodDef def);
 

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/builder/ModelBuilder.java (1079 => 1080)

--- trunk/qdox/src/java/com/thoughtworks/qdox/builder/ModelBuilder.java	2011-02-26 11:30:33 UTC (rev 1079)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/builder/ModelBuilder.java	2011-02-26 11:31:17 UTC (rev 1080)
@@ -27,6 +27,7 @@
 import com.thoughtworks.qdox.model.AbstractBaseJavaEntity;
 import com.thoughtworks.qdox.model.Annotation;
 import com.thoughtworks.qdox.model.DefaultJavaClass;
+import com.thoughtworks.qdox.model.DefaultJavaConstructor;
 import com.thoughtworks.qdox.model.DefaultJavaField;
 import com.thoughtworks.qdox.model.DefaultJavaMethod;
 import com.thoughtworks.qdox.model.DefaultJavaPackage;
@@ -54,6 +55,7 @@
 
     private final DefaultJavaSource source;
     private LinkedList<DefaultJavaClass> classStack = new LinkedList<DefaultJavaClass>();
+    private DefaultJavaConstructor currentConstructor;
     private DefaultJavaMethod currentMethod;
     private List<AnnoDef> currentAnnoDefs;
     private String lastComment;
@@ -199,7 +201,59 @@
         
         lastComment = null;
     }
+    
+    public void addConstructor(MethodDef def) {
+        beginConstructor();
+        endConstructor(def);
+    }
+    
+    
 
+    public void beginConstructor()
+    {
+        currentConstructor = new DefaultJavaConstructor();
+        currentConstructor.setParentClass( classStack.getFirst() );
+        classStack.getFirst().addConstructor( currentConstructor );
+        
+        currentConstructor.setModelWriterFactory( modelWriterFactory );
+        
+        addJavaDoc( currentConstructor );
+        setAnnotations( currentConstructor );
+    }
+
+    public void endConstructor( MethodDef def )
+    {
+        currentConstructor.setLineNumber(def.lineNumber);
+
+        // basic details
+        currentConstructor.setName(def.name);
+
+        // typeParameters
+        if (def.typeParams != null) {
+            List<TypeVariable> typeParams = new LinkedList<TypeVariable>();
+            for(TypeVariableDef typeVariableDef : def.typeParams) {
+                typeParams.add(createTypeVariable(typeVariableDef));
+            }
+            currentConstructor.setTypeParameters(typeParams);
+        }
+        
+        // exceptions
+        {
+            List<Type> exceptions = new LinkedList<Type>();
+            for (TypeDef type : def.exceptions) {
+                exceptions.add(createType(type, 0));
+            }
+            currentConstructor.setExceptions(exceptions);
+        }
+
+        // modifiers
+        {
+            currentConstructor.setModifiers(new LinkedList<String>( def.modifiers ));
+        }
+        
+        currentConstructor.setSourceCode(def.body);
+    }
+
     public void addMethod(MethodDef def) {
     	beginMethod();
     	endMethod(def);

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/DefaultJavaClass.java (1079 => 1080)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/DefaultJavaClass.java	2011-02-26 11:30:33 UTC (rev 1079)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/DefaultJavaClass.java	2011-02-26 11:31:17 UTC (rev 1080)
@@ -42,6 +42,7 @@
     private static JavaClass OBJECT_JAVACLASS;
     private static JavaClass ENUM_JAVACLASS;
 
+    private List<JavaConstructor> constructors = new LinkedList<JavaConstructor>();
     private List<JavaMethod> methods = new LinkedList<JavaMethod>();
     private List<JavaField> fields = new LinkedList<JavaField>();
     private List<JavaClass> classes = new LinkedList<JavaClass>();
@@ -190,6 +191,11 @@
         this.isAnnotation = isAnnotation;
     }
 
+    public void addConstructor( JavaConstructor constructor )
+    {
+        constructors.add( constructor );
+    }
+
     public void addMethod(JavaMethod meth) {
         methods.add(meth);
     }
@@ -316,6 +322,11 @@
         return type;
     }
 
+    public List<JavaConstructor> getConstructors()
+    {
+        return constructors;
+    }
+    
     /* (non-Javadoc)
      * @see com.thoughtworks.qdox.model.JavaClass#getMethods()
      */
@@ -723,4 +734,5 @@
     {
         return getSource().getJavaClassLibrary();
     }
+
 }

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java (1079 => 1080)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java	2011-02-26 11:30:33 UTC (rev 1079)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java	2011-02-26 11:31:17 UTC (rev 1080)
@@ -97,6 +97,13 @@
     public Type asType();
 
     public List<JavaMethod> getMethods();
+    
+    /**
+     * 
+     * @return the list of constrcutors
+     * @since 2.0
+     */
+    public List<JavaConstructor> getConstructors();
 
     /**
      * @since 1.3

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/parser/MockBuilder.java (1079 => 1080)

--- trunk/qdox/src/test/com/thoughtworks/qdox/parser/MockBuilder.java	2011-02-26 11:30:33 UTC (rev 1079)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/parser/MockBuilder.java	2011-02-26 11:31:17 UTC (rev 1080)
@@ -26,6 +26,9 @@
     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 myBeginConstructorCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder BeginConstructorCalls");
+    private ExpectationCounter myEndConstructorCalls = new ExpectationCounter("com.thoughtworks.qdox.parser.Builder EndConstructorCalls");
+    private ExpectationList myEndConstructorParameter0Values = new ExpectationList("com.thoughtworks.qdox.parser.Builder.endConstructor() : 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");
@@ -107,6 +110,11 @@
     public void endClass() {
         myEndClassCalls.inc();
     }
+    
+    public void beginConstructor()
+    {
+        myBeginConstructorCalls.inc();
+    }
 
     public void beginMethod() {
         myBeginMethodCalls.inc();
@@ -118,6 +126,12 @@
     public void addExpectedAddMethodValues(MethodDef arg0) {
         myEndMethodParameter0Values.addExpected(arg0);
     }
+    
+    public void endConstructor( MethodDef def )
+    {
+        myEndConstructorCalls.inc();
+        myEndConstructorParameter0Values.addActual(def);
+    }
 
     public void endMethod(MethodDef arg0) {
         myEndMethodCalls.inc();


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to