Title: [1474] trunk/qdox/src: Pre- and post increment/decrement up until JavaField, including tests
Revision
1474
Author
rfscholte
Date
2011-12-30 14:44:35 -0600 (Fri, 30 Dec 2011)

Log Message

Pre- and post increment/decrement up until JavaField, including tests

Modified Paths

Added Paths

Diff

Modified: trunk/qdox/src/grammar/parser.y (1473 => 1474)


--- trunk/qdox/src/grammar/parser.y	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/grammar/parser.y	2011-12-30 20:44:35 UTC (rev 1474)
@@ -632,14 +632,13 @@
                  | EnumConstants_opt COMMA
                  | EnumConstants_opt EnumConstant;
                  
-EnumConstant: Annotations_opt IDENTIFIER Arguments_opt
+EnumConstant: Annotations_opt IDENTIFIER 
               { 
                 makeField( new TypeDef($2, 0), "", true );
                 builder.beginField( fd );
               }
-              ClassBody_opt
+              Arguments_opt ClassBody_opt
               {
-                fd.setBody( lexer.getCodeBody() );
                 builder.endField();
               };
          
@@ -722,6 +721,9 @@
                 | ArgumentList;
 
 ArgumentList: _expression_
+              {
+                builder.addArgument( (ExpressionDef) $1);
+              }
             | ArgumentList COMMA _expression_;
 
 

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/Builder.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/Builder.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/Builder.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import com.thoughtworks.qdox.parser._expression_.ExpressionDef;
 import com.thoughtworks.qdox.parser.structs.AnnoDef;
 import com.thoughtworks.qdox.parser.structs.ClassDef;
 import com.thoughtworks.qdox.parser.structs.FieldDef;
@@ -27,31 +28,32 @@
 import com.thoughtworks.qdox.parser.structs.TagDef;
 import com.thoughtworks.qdox.writer.ModelWriterFactory;
 
-public interface Builder {
+public interface Builder
+{
+    void setModelWriterFactory( ModelWriterFactory writer );
 
-    void setModelWriterFactory(ModelWriterFactory writer);
-    
-    void addPackage(PackageDef packageDef);
+    void addPackage( PackageDef packageDef );
 
-    void addImport(String importName);
+    void addImport( String importName );
 
-    void addJavaDoc(String text);
+    void addJavaDoc( String text );
+    void addJavaDocTag( TagDef def );
 
-    void addJavaDocTag(TagDef def);
-
-    void beginClass(ClassDef def);
+    void beginClass( ClassDef def );
     void endClass();
 
     void beginConstructor();
-    void endConstructor(MethodDef def);
+    void endConstructor( MethodDef def );
 
     void beginMethod();
-    void endMethod(MethodDef def);
+    void endMethod( MethodDef def );
 
-    void beginField(FieldDef def);
+    void beginField( FieldDef def );
     void endField();
 
-    void addParameter(FieldDef def);
+    void addParameter( FieldDef def );
 
-    void addAnnotation(AnnoDef annotation);
-}
+    void addAnnotation( AnnoDef annotation );
+
+    void addArgument(  ExpressionDef argument );
+}
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/impl/DefaultAnnotationTransformer.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/impl/DefaultAnnotationTransformer.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/impl/DefaultAnnotationTransformer.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -36,6 +36,7 @@
 import com.thoughtworks.qdox.model._expression_.Divide;
 import com.thoughtworks.qdox.model._expression_.Equals;
 import com.thoughtworks.qdox.model._expression_.ExclusiveOr;
+import com.thoughtworks.qdox.model._expression_._expression_;
 import com.thoughtworks.qdox.model._expression_.FieldRef;
 import com.thoughtworks.qdox.model._expression_.GreaterEquals;
 import com.thoughtworks.qdox.model._expression_.GreaterThan;
@@ -51,7 +52,10 @@
 import com.thoughtworks.qdox.model._expression_.Or;
 import com.thoughtworks.qdox.model._expression_.ParenExpression;
 import com.thoughtworks.qdox.model._expression_.PlusSign;
+import com.thoughtworks.qdox.model._expression_.PostDecrement;
+import com.thoughtworks.qdox.model._expression_.PostIncrement;
 import com.thoughtworks.qdox.model._expression_.PreDecrement;
+import com.thoughtworks.qdox.model._expression_.PreIncrement;
 import com.thoughtworks.qdox.model._expression_.Query;
 import com.thoughtworks.qdox.model._expression_.Remainder;
 import com.thoughtworks.qdox.model._expression_.ShiftLeft;
@@ -67,6 +71,8 @@
 import com.thoughtworks.qdox.parser._expression_.CastDef;
 import com.thoughtworks.qdox.parser._expression_.ConstantDef;
 import com.thoughtworks.qdox.parser._expression_.DivideDef;
+import com.thoughtworks.qdox.parser._expression_.ElemValueDef;
+import com.thoughtworks.qdox.parser._expression_.ElemValueListDef;
 import com.thoughtworks.qdox.parser._expression_.EqualsDef;
 import com.thoughtworks.qdox.parser._expression_.ExclusiveOrDef;
 import com.thoughtworks.qdox.parser._expression_.FieldRefDef;
@@ -96,8 +102,6 @@
 import com.thoughtworks.qdox.parser._expression_.TransformerDef;
 import com.thoughtworks.qdox.parser._expression_.TypeRefDef;
 import com.thoughtworks.qdox.parser._expression_.UnsignedShiftRightDef;
-import com.thoughtworks.qdox.parser._expression_.ElemValueDef;
-import com.thoughtworks.qdox.parser._expression_.ElemValueListDef;
 import com.thoughtworks.qdox.parser.structs.AnnoDef;
 import com.thoughtworks.qdox.parser.structs.TypeDef;
 
@@ -413,24 +417,26 @@
 
     public AnnotationValue transform( PreIncrementDef preIncrementDef )
     {
-        // TODO Auto-generated method stub
-        return null;
+        return new PreIncrement( preIncrementDef.getElemValueDef().transform( this )  );
     }
     
     public AnnotationValue transform( PreDecrementDef preDecrementDef )
     {
-        return new PreDecrement( preDecrementDef.transform( this )  );
+        return new PreDecrement( preDecrementDef.getElemValueDef().transform( this )  );
     }
     
     public AnnotationValue transform( PostIncrementDef postIncrement )
     {
-        // TODO Auto-generated method stub
-        return null;
+        return new PostIncrement( postIncrement.getElemValueDef().transform( this )  );
     }
     
     public AnnotationValue transform( PostDecrementDef postDecrementDef )
     {
-        // TODO Auto-generated method stub
-        return null;
+        return new PostDecrement( postDecrementDef.getElemValueDef().transform( this )  );
     }
+
+    public _expression_ transform( ElemValueDef annoDef )
+    {
+        return annoDef.transform( this );
+    }
 }
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/impl/ModelBuilder.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/impl/ModelBuilder.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/builder/impl/ModelBuilder.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -40,6 +40,7 @@
 import com.thoughtworks.qdox.model.JavaSource;
 import com.thoughtworks.qdox.model.JavaType;
 import com.thoughtworks.qdox.model.JavaTypeVariable;
+import com.thoughtworks.qdox.model._expression_._expression_;
 import com.thoughtworks.qdox.model.impl.AbstractBaseJavaEntity;
 import com.thoughtworks.qdox.model.impl.DefaultJavaClass;
 import com.thoughtworks.qdox.model.impl.DefaultJavaConstructor;
@@ -50,6 +51,8 @@
 import com.thoughtworks.qdox.model.impl.DefaultJavaSource;
 import com.thoughtworks.qdox.model.impl.DefaultJavaType;
 import com.thoughtworks.qdox.model.impl.DefaultJavaTypeVariable;
+import com.thoughtworks.qdox.parser._expression_.ElemValueDef;
+import com.thoughtworks.qdox.parser._expression_.ExpressionDef;
 import com.thoughtworks.qdox.parser.structs.AnnoDef;
 import com.thoughtworks.qdox.parser.structs.ClassDef;
 import com.thoughtworks.qdox.parser.structs.FieldDef;
@@ -79,6 +82,8 @@
     private DefaultJavaField currentField;
 
     private List<AnnoDef> currentAnnoDefs;
+    
+    private List<ExpressionDef> currentArguments;
 
     private String lastComment;
 
@@ -93,6 +98,7 @@
         this.docletTagFactory = docletTagFactory;
         this.source = new DefaultJavaSource( classLibrary );
         this.currentAnnoDefs = new LinkedList<AnnoDef>();
+        this.currentArguments = new LinkedList<ExpressionDef>();
     }
     
     /** {@inheritDoc} */
@@ -388,6 +394,7 @@
 
         currentField.setName( def.getName() );
         currentField.setType( createType( def.getType(), def.getDimensions() ) );
+        
         currentField.setEnumConstant( def.isEnumConstant() );
 
         // modifiers
@@ -403,11 +410,27 @@
 
         // annotations
         setAnnotations( currentField );
+        
+        
     }
 	
     /** {@inheritDoc} */
 	public void endField() 
 	{
+	    if ( currentArguments != null && !currentArguments.isEmpty() )
+        {
+	        //DefaultExpressionTransformer?? 
+            DefaultAnnotationTransformer transformer = new DefaultAnnotationTransformer( currentField );
+
+            List<_expression_> arguments = new LinkedList<_expression_>();
+            for ( ExpressionDef annoDef : currentArguments )
+            {
+                arguments.add( transformer.transform( annoDef ) );
+            }
+            currentField.setEnumConstantArguments( arguments );
+            currentArguments.clear();
+        }
+	    
         classStack.getFirst().addField(currentField);
         
         currentField = null;
@@ -448,6 +471,11 @@
     {
         currentAnnoDefs.add( annotation );
     }
+    
+    public void addArgument( ExpressionDef argument )
+    {
+        currentArguments.add( argument );
+    }
 
     public JavaSource getSource()
     {

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/JavaField.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/JavaField.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/JavaField.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -1,5 +1,9 @@
 package com.thoughtworks.qdox.model;
 
+import java.util.List;
+
+import com.thoughtworks.qdox.model._expression_._expression_;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -71,4 +75,12 @@
      * @since 2.0 
      */
     JavaClass getEnumConstantClass();
+
+    /**
+     * 
+     * 
+     * @return the arguments of the enum constant
+     * @since 2.0
+     */
+    List<_expression_> getEnumConstantArguments();
 }
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/AnnotationValue.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/AnnotationValue.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/AnnotationValue.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -19,14 +19,12 @@
  * under the License.
  */
 
-import com.thoughtworks.qdox.model.impl.DefaultJavaAnnotation;
-
 /**
  * Interface for all annotation model elements
  * 
  * @author Jochen Kuhnle
  */
-public interface AnnotationValue {
+public interface AnnotationValue extends _expression_ {
 
     /**
      * Accept a visitor for this value.
@@ -35,12 +33,4 @@
      * @return Visitor result
      */
     Object accept( ExpressionVisitor visitor );
-
-    /**
-     * Get a parameter value for {@link DefaultJavaAnnotation#getNamedParameter(String)}.
-     * 
-     * @return Parameter value
-     */
-    Object getParameterValue();
-
-}
+}
\ No newline at end of file

Added: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/_expression_.java (0 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/_expression_.java	                        (rev 0)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/_expression_.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -0,0 +1,30 @@
+package com.thoughtworks.qdox.model._expression_;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+public interface _expression_
+{
+    /**
+     * Get a parameter value for {@link JavaAnnotation#getNamedParameter(String)}.
+     * 
+     * @return Parameter value
+     */
+    Object getParameterValue();
+}
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PostDecrement.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PostDecrement.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PostDecrement.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -26,13 +26,21 @@
         super( value );
     }
 
+    /** {@inheritDoc}} */
     public Object accept( ExpressionVisitor visitor )
     {
         return visitor.visit( this );
     }
 
+    /** {@inheritDoc}} */
     public String getParameterValue()
     {
-        return "--" + getValue().getParameterValue();
+        return getValue().getParameterValue() + "--";
     }
+    
+    @Override
+    public String toString()
+    {
+        return getValue().toString() + "--";
+    }
 }
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PostIncrement.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PostIncrement.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PostIncrement.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -26,13 +26,21 @@
         super( value );
     }
 
+    /** {@inheritDoc}} */
     public Object accept( ExpressionVisitor visitor )
     {
         return visitor.visit( this );
     }
 
+    /** {@inheritDoc}} */
     public String getParameterValue()
     {
-        return "++" + getValue().getParameterValue();
+        return getValue().getParameterValue() + "++";
     }
+    
+    @Override
+    public String toString()
+    {
+        return getValue().toString() + "++";
+    }
 }
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PreDecrement.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PreDecrement.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PreDecrement.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -26,13 +26,21 @@
         super( value );
     }
 
+    /** {@inheritDoc}} */
     public Object accept( ExpressionVisitor visitor )
     {
         return visitor.visit( this );
     }
 
+    /** {@inheritDoc}} */
     public String getParameterValue()
     {
         return "--" + getValue().getParameterValue();
     }
+    
+    @Override
+    public String toString()
+    {
+        return "--" + getValue().toString();
+    }
 }
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PreIncrement.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PreIncrement.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/_expression_/PreIncrement.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -26,13 +26,21 @@
         super( value );
     }
 
+    /** {@inheritDoc}} */
     public Object accept( ExpressionVisitor visitor )
     {
         return visitor.visit( this );
     }
 
+    /** {@inheritDoc}} */
     public String getParameterValue()
     {
         return "++" + getValue().getParameterValue();
     }
+    
+    @Override
+    public String toString()
+    {
+        return "++" + getValue().toString();
+    }
 }
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/impl/DefaultJavaField.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/impl/DefaultJavaField.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/impl/DefaultJavaField.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -1,7 +1,10 @@
 package com.thoughtworks.qdox.model.impl;
 
+import java.util.List;
+
 import com.thoughtworks.qdox.model.JavaClass;
 import com.thoughtworks.qdox.model.JavaField;
+import com.thoughtworks.qdox.model._expression_._expression_;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -34,6 +37,8 @@
     private boolean enumConstant;
 
     private JavaClass enumConstantClass;
+    
+    private List<_expression_> enumConstantArguments;
 
     public DefaultJavaField()
     {
@@ -118,7 +123,18 @@
     {
         this.enumConstant = enumConstant;
     }
+
+    /** {@inheritDoc} */
+    public List<_expression_> getEnumConstantArguments()
+    {
+        return enumConstantArguments;
+    }
     
+    public void setEnumConstantArguments( List<_expression_> enumConstantArguments )
+    {
+        this.enumConstantArguments = enumConstantArguments;
+    }
+    
     /** {@inheritDoc} */
     public JavaClass getEnumConstantClass()
     {

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/AssignmentDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/AssignmentDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/AssignmentDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -19,7 +19,7 @@
  * under the License.
  */
 
-public class AssignmentDef implements ElemValueDef
+public class AssignmentDef extends ExpressionDef
 {
 
     private ElemValueDef letfHandSide;

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/BinaryOperatorDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/BinaryOperatorDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/BinaryOperatorDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -19,7 +19,7 @@
  * under the License.
  */
 
-public abstract class BinaryOperatorDef implements ElemValueDef {
+public abstract class BinaryOperatorDef extends ExpressionDef {
 	
 	private final ElemValueDef lhs;
     private final ElemValueDef rhs;

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/CastDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/CastDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/CastDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -21,7 +21,7 @@
  * under the License.
  */
 
-public class CastDef implements ElemValueDef
+public class CastDef extends ExpressionDef
 {
 
     private final TypeDef typeDef;

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ConstantDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ConstantDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ConstantDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -20,7 +20,7 @@
  */
 
 
-public class ConstantDef implements ElemValueDef {
+public class ConstantDef extends ExpressionDef {
 
     private final String value;
     private Class<?> type;

Added: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ExpressionDef.java (0 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ExpressionDef.java	                        (rev 0)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ExpressionDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -0,0 +1,25 @@
+package com.thoughtworks.qdox.parser._expression_;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+public abstract class ExpressionDef implements ElemValueDef
+{
+
+}

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/FieldRefDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/FieldRefDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/FieldRefDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -20,7 +20,7 @@
  */
 
 
-public class FieldRefDef implements ElemValueDef {
+public class FieldRefDef extends ExpressionDef {
 
     private final String name;
 

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ParenExpressionDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ParenExpressionDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/ParenExpressionDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -1,6 +1,5 @@
 package com.thoughtworks.qdox.parser._expression_;
 
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -20,7 +19,7 @@
  * under the License.
  */
 
-public class ParenExpressionDef implements ElemValueDef {
+public class ParenExpressionDef extends ExpressionDef {
 
 	private final ElemValueDef elemValueDef;
 
@@ -39,5 +38,4 @@
     {
         return elemValueDef;
     }
-
-}
+}
\ No newline at end of file

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/QueryDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/QueryDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/QueryDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -20,7 +20,7 @@
  * under the License.
  */
 
-public class QueryDef implements ElemValueDef {
+public class QueryDef  extends ExpressionDef {
 
 	private final ElemValueDef cond;
 	private final ElemValueDef trueExpr;

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/TypeRefDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/TypeRefDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/TypeRefDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -21,7 +21,7 @@
 
 import com.thoughtworks.qdox.parser.structs.TypeDef;
 
-public class TypeRefDef implements ElemValueDef {
+public class TypeRefDef  extends ExpressionDef {
 
 	private TypeDef typeDef;
 

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/UnaryOperatorDef.java (1473 => 1474)


--- trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/UnaryOperatorDef.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/parser/_expression_/UnaryOperatorDef.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -19,7 +19,7 @@
  * under the License.
  */
 
-public abstract class UnaryOperatorDef implements ElemValueDef {
+public abstract class UnaryOperatorDef extends ExpressionDef {
 
 	private final ElemValueDef elemValueDef;
 

Modified: trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java (1473 => 1474)


--- trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -1374,13 +1374,16 @@
     
     public void testIncrementAndDecrement() throws Exception
     {
-        String source = "public enum AssignmentOperators {" +
+        String source = "public enum _expression_ {" +
                 " POSTINC ( a++ )," +
                 " POSTDEC ( a-- )," +
                 " PREINC  ( ++a )," +
                 " PREDEC  ( --a )" +
                 " }";
-        builder.addSource(new StringReader( source ));
+        JavaClass cls = builder.addSource(new StringReader( source )).getClassByName( "_expression_" );
+        JavaField postInc = cls.getFieldByName( "POSTINC" );
+        assertEquals( 1, postInc.getEnumConstantArguments().size() );
+        assertEquals( "a++", postInc.getEnumConstantArguments().get( 0 ).getParameterValue() );
     }
     
     // for QDOX-230

Added: trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PostDecrementTest.java (0 => 1474)


--- trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PostDecrementTest.java	                        (rev 0)
+++ trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PostDecrementTest.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -0,0 +1,39 @@
+package com.thoughtworks.qdox.model._expression_;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Test;
+
+public class PostDecrementTest
+{
+    @Test
+    public void testParameterValue()
+    {
+        AnnotationValue value = mock( AnnotationValue.class );
+        when( value.getParameterValue() ).thenReturn( "index" );
+        PostDecrement expr = new PostDecrement( value );
+        assertEquals( "index--", expr.getParameterValue() );
+    }
+
+    @Test
+    public void testToString()
+    {
+        AnnotationValue value = mock( AnnotationValue.class );
+        when( value.getParameterValue() ).thenReturn( "index" );
+        PostDecrement expr = new PostDecrement( value );
+        assertEquals( value.toString() + "--", expr.toString() );
+    }
+    
+    @Test
+    public void testAccept()
+    {
+        ExpressionVisitor visitor = mock( ExpressionVisitor.class );
+        PostDecrement expr = new PostDecrement( null );
+        Object visitResult = new Object();
+        when( visitor.visit( expr ) ).thenReturn( visitResult );
+        assertSame( expr.accept( visitor ), visitResult );
+    }
+}
\ No newline at end of file

Added: trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PostIncrementTest.java (0 => 1474)


--- trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PostIncrementTest.java	                        (rev 0)
+++ trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PostIncrementTest.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -0,0 +1,39 @@
+package com.thoughtworks.qdox.model._expression_;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Test;
+
+public class PostIncrementTest
+{
+    @Test
+    public void testParameterValue()
+    {
+        AnnotationValue value = mock( AnnotationValue.class );
+        when( value.getParameterValue() ).thenReturn( "index" );
+        PostIncrement expr = new PostIncrement( value );
+        assertEquals( "index++", expr.getParameterValue() );
+    }
+
+    @Test
+    public void testToString()
+    {
+        AnnotationValue value = mock( AnnotationValue.class );
+        when( value.getParameterValue() ).thenReturn( "index" );
+        PostIncrement expr = new PostIncrement( value );
+        assertEquals( value.toString() + "++", expr.toString() );
+    }
+    
+    @Test
+    public void testAccept()
+    {
+        ExpressionVisitor visitor = mock( ExpressionVisitor.class );
+        PostIncrement expr = new PostIncrement( null );
+        Object visitResult = new Object();
+        when( visitor.visit( expr ) ).thenReturn( visitResult );
+        assertSame( expr.accept( visitor ), visitResult );
+    }
+}

Added: trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PreDecrementTest.java (0 => 1474)


--- trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PreDecrementTest.java	                        (rev 0)
+++ trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PreDecrementTest.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -0,0 +1,39 @@
+package com.thoughtworks.qdox.model._expression_;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Test;
+
+public class PreDecrementTest
+{
+    @Test
+    public void testParameterValue()
+    {
+        AnnotationValue value = mock( AnnotationValue.class );
+        when( value.getParameterValue() ).thenReturn( "index" );
+        PreDecrement expr = new PreDecrement( value );
+        assertEquals( "--index", expr.getParameterValue() );
+    }
+
+    @Test
+    public void testToString()
+    {
+        AnnotationValue value = mock( AnnotationValue.class );
+        when( value.getParameterValue() ).thenReturn( "index" );
+        PreDecrement expr = new PreDecrement( value );
+        assertEquals( "--" + value.toString(), expr.toString() );
+    }
+    
+    @Test
+    public void testAccept()
+    {
+        ExpressionVisitor visitor = mock( ExpressionVisitor.class );
+        PreDecrement expr = new PreDecrement( null );
+        Object visitResult = new Object();
+        when( visitor.visit( expr ) ).thenReturn( visitResult );
+        assertSame( expr.accept( visitor ), visitResult );
+    }
+}
\ No newline at end of file

Added: trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PreIncrementTest.java (0 => 1474)


--- trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PreIncrementTest.java	                        (rev 0)
+++ trunk/qdox/src/test/java/com/thoughtworks/qdox/model/_expression_/PreIncrementTest.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -0,0 +1,39 @@
+package com.thoughtworks.qdox.model._expression_;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Test;
+
+public class PreIncrementTest
+{
+    @Test
+    public void testParameterValue()
+    {
+        AnnotationValue value = mock( AnnotationValue.class );
+        when( value.getParameterValue() ).thenReturn( "index" );
+        PreIncrement expr = new PreIncrement( value );
+        assertEquals( "++index", expr.getParameterValue() );
+    }
+
+    @Test
+    public void testToString()
+    {
+        AnnotationValue value = mock( AnnotationValue.class );
+        when( value.getParameterValue() ).thenReturn( "index" );
+        PreIncrement expr = new PreIncrement( value );
+        assertEquals( "++" + value.toString(), expr.toString() );
+    }
+    
+    @Test
+    public void testAccept()
+    {
+        ExpressionVisitor visitor = mock( ExpressionVisitor.class );
+        PreIncrement expr = new PreIncrement( null );
+        Object visitResult = new Object();
+        when( visitor.visit( expr ) ).thenReturn( visitResult );
+        assertSame( expr.accept( visitor ), visitResult );
+    }
+}
\ No newline at end of file

Modified: trunk/qdox/src/test/java/com/thoughtworks/qdox/parser/ParserTest.java (1473 => 1474)


--- trunk/qdox/src/test/java/com/thoughtworks/qdox/parser/ParserTest.java	2011-12-30 14:28:01 UTC (rev 1473)
+++ trunk/qdox/src/test/java/com/thoughtworks/qdox/parser/ParserTest.java	2011-12-30 20:44:35 UTC (rev 1474)
@@ -2643,7 +2643,7 @@
         FieldDef fld0 = f.getAllValues().get( 0 );
         assertEquals( "a", fld0.getName() );
         assertEquals( new TypeDef( "x" ), fld0.getType() ); // bug @todo fixme
-        assertEquals( null, fld0.getBody() );
+        assertEquals( "", fld0.getBody() );
         FieldDef fld1 = f.getAllValues().get( 1 );
         assertEquals( "someField", fld1.getName() );
         assertEquals( new TypeDef( "int" ), fld1.getType() );
@@ -2685,7 +2685,7 @@
         FieldDef fld = f.getValue();
         assertEquals( "a", fld.getName() );
         assertEquals( new TypeDef( "x" ), fld.getType() ); //bug @todo fixme
-        assertEquals( null , fld.getBody() );
+        assertEquals( "" , fld.getBody() );
     }
     
     // QDOX-266

To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to