constructorIndex++;
} else {
// normal method
MethodTypeMemberMetadata methodTypeMemberMetadata = (MethodTypeMemberMetadata)methodMetadata;
String methodRootPath = JavaMetadataUtil.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);
output.setProperty(methodChildNode,
nameFactory.create(JAVA_METHOD_NAME),
methodTypeMemberMetadata.getName());
// method modifiers
int methodModierIndex = 1;
for (ModifierMetadata modifierMetadata : methodTypeMemberMetadata.getModifiers()) {
String methodModifierPath = JavaMetadataUtil.createPathWithIndex(methodRootPath
+ SLASH
+ JAVA_MODIFIER_CHILD_NODE
+ SLASH
+ JAVA_MODIFIER_DECLARATION_CHILD_NODE,
methodModierIndex);
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 methodParamRootPath = JavaMetadataUtil.createPathWithIndex(methodRootPath + SLASH
+ JAVA_PARAMETER + SLASH
+ JAVA_FORMAL_PARAMETER,
methodParameterIndex);
if (fieldMetadata instanceof PrimitiveFieldMetadata) {
PrimitiveFieldMetadata primitive = (PrimitiveFieldMetadata)fieldMetadata;
String methodPrimitiveFormalParamRootPath = JavaMetadataUtil.createPath(methodParamRootPath
+ SLASH
+ JAVA_TYPE_CHILD_NODE
+ SLASH
+ JAVA_PRIMITIVE_TYPE_CHILD_NODE);
Path methodParamChildNode = MethodMetadataSequencer.createMethodParamPath(pathFactory,
methodPrimitiveFormalParamRootPath);
// variables
for (Variable variable : primitive.getVariables()) {
VariableSequencer.sequenceTheVariable(output, nameFactory, variable, methodParamChildNode);
}
// type
Path methodPrimitiveTypeParamChildNode = pathFactory.create(methodPrimitiveFormalParamRootPath);
output.setProperty(methodPrimitiveTypeParamChildNode,
nameFactory.create(JAVA_PRIMITIVE_TYPE_NAME),
primitive.getType());
}
if (fieldMetadata instanceof SimpleTypeFieldMetadata) {
SimpleTypeFieldMetadata simpleTypeFieldMetadata = (SimpleTypeFieldMetadata)fieldMetadata;
SimpleTypeMetadataSequencer.sequenceMethodFormalParam(output,
nameFactory,
pathFactory,
simpleTypeFieldMetadata,
methodParamRootPath);
}
if (fieldMetadata instanceof ArrayTypeFieldMetadata) {
ArrayTypeFieldMetadata arrayTypeFieldMetadata = (ArrayTypeFieldMetadata)fieldMetadata;
ArrayTypeFieldMetadataSequencer.sequenceMethodFormalParam(output,
nameFactory,
pathFactory,
arrayTypeFieldMetadata,
methodParamRootPath);
}
// TODO parameter reference types
methodParameterIndex++;
}
// method return type
FieldMetadata methodReturnType = methodTypeMemberMetadata.getReturnType();
if (methodReturnType instanceof PrimitiveFieldMetadata) {
PrimitiveFieldMetadata methodReturnPrimitiveType = (PrimitiveFieldMetadata)methodReturnType;
String methodReturnPrimitiveTypePath = JavaMetadataUtil.createPath(methodRootPath
+ SLASH