Author: spagop
Date: 2008-08-14 17:40:16 -0400 (Thu, 14 Aug 2008)
New Revision: 428
Removed:
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ReturnType.java
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/MethodMetadata.java
Log:
support for sequencing constructors/methods with or without primitive type parameters,
return primitive type
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-14
21:02:38 UTC (rev 427)
+++
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java 2008-08-14
21:40:16 UTC (rev 428)
@@ -58,7 +58,7 @@
import org.jboss.dna.sequencer.java.metadata.PackageMetadata;
import org.jboss.dna.sequencer.java.metadata.ParameterizedFieldMetadata;
import org.jboss.dna.sequencer.java.metadata.PrimitiveFieldMetadata;
-import org.jboss.dna.sequencer.java.metadata.ReturnType;
+import org.jboss.dna.sequencer.java.metadata.ReferenceFieldMetadata;
import org.jboss.dna.sequencer.java.metadata.SimpleFieldMetadata;
import org.jboss.dna.sequencer.java.metadata.SingleImportMetadata;
import org.jboss.dna.sequencer.java.metadata.SingleMemberAnnotationMetadata;
@@ -275,16 +275,15 @@
private void processReturnTypeOfMethodDeclaration( MethodDeclaration
methodDeclaration,
MethodMetadata methodMetadata ) {
Type type = methodDeclaration.getReturnType2();
- ReturnType returnType = null;
if(type.isPrimitiveType()) {
- returnType = new ReturnType();
- returnType.setName(((PrimitiveType)type).getPrimitiveTypeCode().toString());
- methodMetadata.setReturnType(returnType);
+ PrimitiveFieldMetadata primitive = new PrimitiveFieldMetadata();
+ primitive.setType(((PrimitiveType)type).getPrimitiveTypeCode().toString());
+ methodMetadata.setReturnType(primitive);
}
if(type.isSimpleType()) {
- returnType = new ReturnType();
- returnType.setName(JavaMetadataUtil.getName(((SimpleType)type).getName()));
- methodMetadata.setReturnType(returnType);
+ ReferenceFieldMetadata referenceFieldMetadata = new
ReferenceFieldMetadata();
+
referenceFieldMetadata.setType(JavaMetadataUtil.getName(((SimpleType)type).getName()));
+ methodMetadata.setReturnType(referenceFieldMetadata);
}
}
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-14
21:02:38 UTC (rev 427)
+++
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java 2008-08-14
21:40:16 UTC (rev 428)
@@ -184,9 +184,10 @@
// 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";
+ public static final String JAVA_RETURN_TYPE = "java:resultType";
+
/**
* {@inheritDoc}
*
@@ -435,24 +436,27 @@
modifierMetadata.getName());
constructorModifierIndex++;
}
- // parameters
- List<FieldMetadata> params =
constructorMetadata.getParameters();
+
+ // constructor parameters
int constructorParameterIndex = 1;
- for (FieldMetadata fieldMetadata2 : params) {
- String constructorParameterPath =
createPathWithIndex(constructorRootPath.toString() + SLASH
- +
JAVA_PARAMETER + SLASH
- +
JAVA_FORMAL_PARAMETER,
-
constructorParameterIndex).toString();
+ for (FieldMetadata fieldMetadata2 :
constructorMetadata.getParameters()) {
+
+ String constructorParameterRootPath =
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
+ String constructPrimitiveFormalParamRootPath =
createPath(constructorParameterRootPath
+
+ 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) {
+ for (Variable variable : primitive.getVariables()) {
// name
output.setProperty(constructorParamChildNode,
nameFactory.create(JAVA_VARIABLE_NAME),
@@ -465,8 +469,9 @@
primitive.getType());
}
-
- // TODO for reference types
+
+ // TODO parameter reference types
+
constructorParameterIndex++;
}
@@ -486,6 +491,77 @@
output.setProperty(methodChildNode,
nameFactory.create(JAVA_METHOD_NAME),
methodTypeMemberMetadata.getName());
+
+ // method modifiers
+ int methodModierIndex = 1;
+ for (ModifierMetadata modifierMetadata :
methodTypeMemberMetadata.getModifiers()) {
+ String methodModifierPath =
createPathWithIndex(methodRootPath.toString() + SLASH
+ +
JAVA_MODIFIER_CHILD_NODE + SLASH
+ +
JAVA_MODIFIER_DECLARATION_CHILD_NODE,
+
methodModierIndex).toString();
+ Path methodModifierChildNode =
pathFactory.create(methodModifierPath);
+ output.setProperty(methodModifierChildNode,
+
nameFactory.create(JAVA_MODIFIER_NAME),
+ modifierMetadata.getName());
+ methodModierIndex++;
+ }
+
+ int methodParameterIndex = 1;
+ for (FieldMetadata fieldMetadata :
methodMetadata.getParameters()) {
+
+ String methodPrimitiveParamRootPath =
createPathWithIndex(methodRootPath.toString() + SLASH
+
+ JAVA_PARAMETER + SLASH
+
+ JAVA_FORMAL_PARAMETER,
+
methodParameterIndex).toString();
+
+ if (fieldMetadata instanceof PrimitiveFieldMetadata) {
+
+ PrimitiveFieldMetadata primitive =
(PrimitiveFieldMetadata)fieldMetadata;
+
+ String methodPrimitiveFormalParamRootPath =
createPath(methodPrimitiveParamRootPath + SLASH
+
+ JAVA_TYPE_CHILD_NODE + SLASH
+
+ JAVA_PRIMITIVE_TYPE_CHILD_NODE).toString();
+
+ String methodPrimitiveParamVariablePath =
createPath(methodPrimitiveFormalParamRootPath
+
+ SLASH + JAVA_VARIABLE).toString();
+
+ Path methodParamChildNode =
pathFactory.create(methodPrimitiveParamVariablePath);
+ for (Variable variable : primitive.getVariables()) {
+ // name
+ output.setProperty(methodParamChildNode,
+
nameFactory.create(JAVA_VARIABLE_NAME),
+ variable.getName());
+ }
+ // type
+ Path methodPrimitiveTypeParamChildNode =
pathFactory.create(methodPrimitiveFormalParamRootPath);
+
output.setProperty(methodPrimitiveTypeParamChildNode,
+ nameFactory.create(JAVA_TYPE),
+ primitive.getType());
+
+ }
+
+ // TODO parameter reference types
+
+ methodParameterIndex++;
+ }
+
+ // method return type
+ FieldMetadata methodReturnType =
methodTypeMemberMetadata.getReturnType();
+
+ if (methodReturnType instanceof PrimitiveFieldMetadata) {
+ PrimitiveFieldMetadata methodReturnPrimitiveType =
(PrimitiveFieldMetadata)methodReturnType;
+ String methodReturnPrimitiveTypePath =
createPath(methodRootPath.toString() + SLASH
+ +
JAVA_RETURN_TYPE + SLASH
+ +
JAVA_PRIMITIVE_TYPE_CHILD_NODE).toString();
+ Path methodReturnPrimitiveTypeChildNode =
pathFactory.create(methodReturnPrimitiveTypePath);
+ output.setProperty(methodReturnPrimitiveTypeChildNode,
+ nameFactory.create(JAVA_TYPE),
+ methodReturnPrimitiveType.getType());
+
+ }
+
+ // TODO method return reference type
+
methodIndex++;
}
}
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-14
21:02:38 UTC (rev 427)
+++
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodMetadata.java 2008-08-14
21:40:16 UTC (rev 428)
@@ -31,7 +31,7 @@
private String name;
- private ReturnType returnType;
+ private FieldMetadata returnType;
public abstract boolean isContructor();
@@ -84,14 +84,14 @@
/**
* @return returnType
*/
- public ReturnType getReturnType() {
+ public FieldMetadata getReturnType() {
return returnType;
}
/**
* @param returnType Sets returnType to the specified value.
*/
- public void setReturnType( ReturnType returnType ) {
+ public void setReturnType( FieldMetadata returnType ) {
this.returnType = returnType;
}
}
Deleted:
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ReturnType.java
===================================================================
---
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ReturnType.java 2008-08-14
21:02:38 UTC (rev 427)
+++
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ReturnType.java 2008-08-14
21:40:16 UTC (rev 428)
@@ -1,43 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.dna.sequencer.java.metadata;
-
-/**
- *
- */
-public class ReturnType {
- private String name;
-
- /**
- * @return name
- */
- public String getName() {
- return name;
- }
-
- /**
- * @param name Sets name to the specified value.
- */
- public void setName( String name ) {
- this.name = name;
- }
-}