[dna-commits] DNA SVN: r423 - in trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java: metadata and 1 other directory.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Wed Aug 13 17:38:27 EDT 2008


Author: spagop
Date: 2008-08-13 17:38:27 -0400 (Wed, 13 Aug 2008)
New Revision: 423

Modified:
   trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java
   trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java
   trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/AnnotationMetadata.java
   trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodMetadata.java
Log:
more sequencin for constructors, methods, wthi/without primitive params

Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java	2008-08-13 17:54:03 UTC (rev 422)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java	2008-08-13 21:38:27 UTC (rev 423)
@@ -276,12 +276,12 @@
                                                        MethodMetadata methodMetadata ) {
         Type type = methodDeclaration.getReturnType2();
         ReturnType returnType = null;
-        if (type.isPrimitiveType()) {
+        if(type.isPrimitiveType()) {
             returnType = new ReturnType();
             returnType.setName(((PrimitiveType)type).getPrimitiveTypeCode().toString());
             methodMetadata.setReturnType(returnType);
         }
-        if (type.isSimpleType()) {
+        if(type.isSimpleType()) {
             returnType = new ReturnType();
             returnType.setName(JavaMetadataUtil.getName(((SimpleType)type).getName()));
             methodMetadata.setReturnType(returnType);
@@ -375,6 +375,7 @@
      * @param fieldDeclaration - the declaration.
      * @return fieldMetadata - meta data.
      */
+    @SuppressWarnings( "unchecked" )
     private FieldMetadata getFieldMetadataFrom( FieldDeclaration fieldDeclaration ) {
         if (fieldDeclaration != null && fieldDeclaration.getType() != null && (!fieldDeclaration.fragments().isEmpty())) {
             // type

Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java	2008-08-13 17:54:03 UTC (rev 422)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java	2008-08-13 21:38:27 UTC (rev 423)
@@ -157,9 +157,12 @@
     public static final String JAVA_CLASS_NAME = "java:name";
     public static final String JAVA_MODIFIER_CHILD_NODE = "java:modifier";
     public static final String JAVA_MODIFIER_DECLARATION_CHILD_NODE = "java:modifierDeclaration";
-    public static final String JAVA_MODIFIER_NAME = "java:name";
+    public static final String JAVA_MODIFIER_NAME = "java:modifierName";
 
-    public static final String JAVA_TYPE_NAME = "java:name";
+    public static final String JAVA_VARIABLE = "java:variable";
+    public static final String JAVA_VARIABLE_NAME = "java:variableName";
+    public static final String JAVA_TYPE = "java:typeName";
+
     // primitive type
     public static final String JAVA_FIELD_CHILD_NODE = "java:field";
     public static final String JAVA_FIELD_TYPE_CHILD_NODE = "java:fieldType";
@@ -174,11 +177,16 @@
     public static final String JAVA_METHOD_DECLARATION_CHILD_NODE = "java:methodDeclaration";
     public static final String JAVA_METHOD_NAME = "java:name";
 
+    // constructor
     public static final String JAVA_CONSTRUCTOR_CHILD_NODE = "java:constructor";
     public static final String JAVA_CONSTRUCTOR_DECLARATION_CHILD_NODE = "java:constructorDeclaration";
 
-    
+    // parameter
+    public static final String JAVA_PARAMETER = "java:parameter";
+    public static final String JAVA_FORMAL_PARAMETER = "java:formalParameter";
 
+    public static final String JAVA_PARAMETER_NAME = "java:parameterName";
+
     /**
      * {@inheritDoc}
      * 
@@ -324,39 +332,68 @@
                     List<ModifierMetadata> classModifiers = classMetadata.getModifiers();
                     int modifierIndex = 1;
                     for (ModifierMetadata modifierMetadata : classModifiers) {
-                        
+
                         Path classModifierChildNode = pathFactory.create(JAVA_COMPILATION_UNIT_NODE + SLASH
-                                                                     + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
-                                                                     + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
-                                                                     + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
-                                                                     + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE + SLASH
-                                                                     + JAVA_MODIFIER_CHILD_NODE  + SLASH + JAVA_MODIFIER_DECLARATION_CHILD_NODE + "["
-                                                                     + modifierIndex + "]");
-                        
-                        output.setProperty(classModifierChildNode, nameFactory.create(JAVA_MODIFIER_NAME), modifierMetadata.getName());
+                                                                         + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
+                                                                         + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
+                                                                         + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
+                                                                         + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE + SLASH
+                                                                         + JAVA_MODIFIER_CHILD_NODE + SLASH
+                                                                         + JAVA_MODIFIER_DECLARATION_CHILD_NODE + "["
+                                                                         + modifierIndex + "]");
+
+                        output.setProperty(classModifierChildNode,
+                                           nameFactory.create(JAVA_MODIFIER_NAME),
+                                           modifierMetadata.getName());
                     }
-                        
+
                     // process fields of the class unit.
                     List<FieldMetadata> fields = classMetadata.getFields();
                     int primitiveIndex = 1;
                     for (FieldMetadata fieldMetadata : fields) {
                         if (fieldMetadata instanceof PrimitiveFieldMetadata) {
                             PrimitiveFieldMetadata primitiveFieldMetadata = (PrimitiveFieldMetadata)fieldMetadata;
+                            StringBuffer primitiveFieldRootPath = createPathWithIndex(JAVA_COMPILATION_UNIT_NODE + SLASH
+                                                                                      + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
+                                                                                      + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
+                                                                                      + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
+                                                                                      + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE
+                                                                                      + SLASH + JAVA_FIELD_CHILD_NODE + SLASH
+                                                                                      + JAVA_FIELD_TYPE_CHILD_NODE + SLASH
+                                                                                      + JAVA_TYPE_CHILD_NODE + SLASH
+                                                                                      + JAVA_PRIMITIVE_TYPE_CHILD_NODE,
+                                                                                      primitiveIndex);
+                            // type
+                            Path primitiveTypeChildNode = pathFactory.create(primitiveFieldRootPath);
+                            output.setProperty(primitiveTypeChildNode,
+                                               nameFactory.create(JAVA_TYPE),
+                                               primitiveFieldMetadata.getType());
+                            // modifiers
+                            List<ModifierMetadata> modifiers = primitiveFieldMetadata.getModifiers();
+                            int primitiveModifierIndex = 1;
+                            for (ModifierMetadata modifierMetadata2 : modifiers) {
+                                String modifierPath = createPathWithIndex(primitiveFieldRootPath.toString() + SLASH
+                                                                          + JAVA_MODIFIER_CHILD_NODE + SLASH
+                                                                          + JAVA_MODIFIER_DECLARATION_CHILD_NODE,
+                                                                          primitiveModifierIndex).toString();
+                                Path modifierChildNode = pathFactory.create(modifierPath);
+                                output.setProperty(modifierChildNode,
+                                                   nameFactory.create(JAVA_MODIFIER_NAME),
+                                                   modifierMetadata2.getName());
+                                primitiveModifierIndex++;
+                            }
+                            // variables
                             List<Variable> variables = primitiveFieldMetadata.getVariables();
+                            int primitiveVariableIndex = 1;
                             for (Variable variable : variables) {
-                                Path primitiveChildNode = pathFactory.create(JAVA_COMPILATION_UNIT_NODE + SLASH
-                                                                             + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
-                                                                             + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
-                                                                             + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
-                                                                             + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE + SLASH
-                                                                             + JAVA_FIELD_CHILD_NODE + SLASH
-                                                                             + JAVA_FIELD_TYPE_CHILD_NODE + SLASH
-                                                                             + JAVA_TYPE_CHILD_NODE + SLASH
-                                                                             + JAVA_PRIMITIVE_TYPE_CHILD_NODE + "["
-                                                                             + primitiveIndex + "]");
-                                output.setProperty(primitiveChildNode, nameFactory.create(JAVA_TYPE_NAME), variable.getName());
-                                primitiveIndex++;
+                                String variablePath = createPathWithIndex(primitiveFieldRootPath.toString() + SLASH
+                                                                          + JAVA_VARIABLE,
+                                                                          primitiveVariableIndex).toString();
+                                Path primitiveChildNode = pathFactory.create(variablePath);
+                                output.setProperty(primitiveChildNode, nameFactory.create(JAVA_VARIABLE_NAME), variable.getName());
+                                primitiveVariableIndex++;
                             }
+                            primitiveIndex++;
                         }
                         if (fieldMetadata instanceof ReferenceFieldMetadata) {
                             // ReferenceFieldMetadata parameterizedFieldMetadata = (ReferenceFieldMetadata)fieldMetadata;
@@ -372,31 +409,80 @@
                         if (methodMetadata.isContructor()) {
                             // process contructor
                             ConstructorMetadata constructorMetadata = (ConstructorMetadata)methodMetadata;
-
-                            Path constructorChildNode = pathFactory.create(JAVA_COMPILATION_UNIT_NODE + SLASH
-                                                                           + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
-                                                                           + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
-                                                                           + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
-                                                                           + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE + SLASH
-                                                                           + JAVA_CONSTRUCTOR_CHILD_NODE + SLASH
-                                                                           + JAVA_CONSTRUCTOR_DECLARATION_CHILD_NODE + "["
-                                                                           + constructorIndex + "]");
+                            StringBuffer constructorRootPath = createPathWithIndex(JAVA_COMPILATION_UNIT_NODE + SLASH
+                                                                                   + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
+                                                                                   + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
+                                                                                   + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
+                                                                                   + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE
+                                                                                   + SLASH + JAVA_CONSTRUCTOR_CHILD_NODE + SLASH
+                                                                                   + JAVA_CONSTRUCTOR_DECLARATION_CHILD_NODE,
+                                                                                   constructorIndex);
+                            Path constructorChildNode = pathFactory.create(constructorRootPath.toString());
                             output.setProperty(constructorChildNode,
                                                nameFactory.create(JAVA_METHOD_NAME),
                                                constructorMetadata.getName());
+                            List<ModifierMetadata> modifiers = constructorMetadata.getModifiers();
+                            // modifiers
+                            int constructorModifierIndex = 1;
+                            for (ModifierMetadata modifierMetadata : modifiers) {
+                                String contructorModifierPath = createPathWithIndex(constructorRootPath.toString() + SLASH
+                                                                                    + JAVA_MODIFIER_CHILD_NODE + SLASH
+                                                                                    + JAVA_MODIFIER_DECLARATION_CHILD_NODE,
+                                                                                    constructorModifierIndex).toString();
+                                Path constructorModifierChildNode = pathFactory.create(contructorModifierPath);
+                                output.setProperty(constructorModifierChildNode,
+                                                   nameFactory.create(JAVA_MODIFIER_NAME),
+                                                   modifierMetadata.getName());
+                                constructorModifierIndex++;
+                            }
+                            // parameters
+                            List<FieldMetadata> params = constructorMetadata.getParameters();
+                            int constructorParameterIndex = 1;
+                            for (FieldMetadata fieldMetadata2 : params) {
+                                String constructorParameterPath = createPathWithIndex(constructorRootPath.toString() + SLASH
+                                                                                      + JAVA_PARAMETER + SLASH
+                                                                                      + JAVA_FORMAL_PARAMETER,
+                                                                                      constructorParameterIndex).toString();
+                                if (fieldMetadata2 instanceof PrimitiveFieldMetadata) {
+                                    PrimitiveFieldMetadata primitive = (PrimitiveFieldMetadata)fieldMetadata2;
+                                    String constructPrimitiveFormalParamRootPath = createPath(constructorParameterPath + SLASH
+                                                                                              + JAVA_TYPE_CHILD_NODE + SLASH
+                                                                                              + JAVA_PRIMITIVE_TYPE_CHILD_NODE).toString();
+                                    List<Variable> paramterVariables = primitive.getVariables();
+                                    String constructorPrimitiveParamVariablePath = createPath(constructPrimitiveFormalParamRootPath
+                                                                                              + SLASH + JAVA_VARIABLE).toString();
+                                    Path constructorParamChildNode = pathFactory.create(constructorPrimitiveParamVariablePath);
+                                    for (Variable variable : paramterVariables) {
+                                        // name
+                                        output.setProperty(constructorParamChildNode,
+                                                           nameFactory.create(JAVA_VARIABLE_NAME),
+                                                           variable.getName());
+                                    }
+                                    // type
+                                    Path constructPrimitiveTypeParamChildNode = pathFactory.create(constructPrimitiveFormalParamRootPath);
+                                    output.setProperty(constructPrimitiveTypeParamChildNode,
+                                                       nameFactory.create(JAVA_TYPE),
+                                                       primitive.getType());
+
+                                }
+                                
+                                // TODO for reference types
+                                constructorParameterIndex++;
+                            }
+
                             constructorIndex++;
                         } else {
 
                             // normal method
                             MethodTypeMemberMetadata methodTypeMemberMetadata = (MethodTypeMemberMetadata)methodMetadata;
-                            Path methodChildNode = pathFactory.create(JAVA_COMPILATION_UNIT_NODE + SLASH
-                                                                      + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
-                                                                      + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
-                                                                      + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
-                                                                      + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE + SLASH
-                                                                      + JAVA_METHOD_CHILD_NODE + SLASH
-                                                                      + JAVA_METHOD_DECLARATION_CHILD_NODE + "[" + methodIndex
-                                                                      + "]");
+                            StringBuffer methodRootPath = createPathWithIndex(JAVA_COMPILATION_UNIT_NODE + SLASH
+                                                                              + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
+                                                                              + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
+                                                                              + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
+                                                                              + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE + SLASH
+                                                                              + JAVA_METHOD_CHILD_NODE + SLASH
+                                                                              + JAVA_METHOD_DECLARATION_CHILD_NODE, methodIndex);
+                            Path methodChildNode = pathFactory.create(methodRootPath.toString());
                             output.setProperty(methodChildNode,
                                                nameFactory.create(JAVA_METHOD_NAME),
                                                methodTypeMemberMetadata.getName());
@@ -412,4 +498,38 @@
 
         progressMonitor.done();
     }
+
+    /**
+     * Create a path for the tree with index.
+     * 
+     * @param path - the path.
+     * @param index - the index begin with 1.
+     * @return {@link StringBuffer}
+     */
+    private StringBuffer createPathWithIndex( String path,
+                                              int index ) {
+        StringBuffer rootPath = new StringBuffer();
+
+        if (StringUtils.isEmpty(path)) {
+            throw new IllegalArgumentException("path has to be unique and not empty");
+        }
+        if (index < 1) {
+            throw new IllegalArgumentException("index must begin with 1");
+        }
+        rootPath.append(path + "[" + index + "]");
+        return rootPath;
+    }
+
+    /**
+     * Create a path for the tree without index.
+     * 
+     * @param path - the path.
+     * @return a {@link StringBuffer}
+     */
+    private StringBuffer createPath( String path ) {
+        if (StringUtils.isEmpty(path)) {
+            throw new IllegalArgumentException("path has to be unique and not empty");
+        }
+        return new StringBuffer().append(path);
+    }
 }

Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/AnnotationMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/AnnotationMetadata.java	2008-08-13 17:54:03 UTC (rev 422)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/AnnotationMetadata.java	2008-08-13 21:38:27 UTC (rev 423)
@@ -29,7 +29,8 @@
     private String name;
 
     /**
-     * @return name
+     * Get the name of the modifier.
+     * @return name of the modifier.
      */
     public String getName() {
         return name;

Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodMetadata.java	2008-08-13 17:54:03 UTC (rev 422)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodMetadata.java	2008-08-13 21:38:27 UTC (rev 423)
@@ -25,7 +25,7 @@
 import java.util.List;
 
 /**
- * MethodMetadata
+ * Represent the {@link MethodMetadata}
  */
 public abstract class MethodMetadata {
 




More information about the dna-commits mailing list