--- build/src/org/jibx/custom/classes/ClassItemSourceWrapper.java +++ build/src/org/jibx/custom/classes/ClassItemSourceWrapper.java @@ -21,6 +21,8 @@ package org.jibx.custom.classes; +import java.util.List; + import org.jibx.binding.classes.ClassItem; import org.jibx.binding.model.ClassItemWrapper; import org.jibx.util.IClass; @@ -29,10 +31,10 @@ import org.jibx.util.IClassLocator; import com.thoughtworks.qdox.model.DocletTag; import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.JavaField; +import com.thoughtworks.qdox.model.JavaMember; import com.thoughtworks.qdox.model.JavaMethod; import com.thoughtworks.qdox.model.JavaParameter; -import com.thoughtworks.qdox.model.Member; -import com.thoughtworks.qdox.model.Type; +import com.thoughtworks.qdox.model.JavaType; /** * Wrapper for class field or method item with added source information. This wraps the basic class handling @@ -44,7 +46,7 @@ public class ClassItemSourceWrapper extends ClassItemWrapper { private boolean m_checkedSource; - private Member m_itemSource; + private JavaMember m_itemSource; /** * Constructor @@ -64,14 +66,16 @@ public class ClassItemSourceWrapper extends ClassItemWrapper */ private boolean matchSignature(JavaMethod method) { boolean match = true; - JavaParameter[] parms = method.getParameters(); - if (parms.length == getArgumentCount()) { - for (int j = 0; j < parms.length; j++) { - Type ptype = parms[j].getType(); + List parms = method.getParameters(); + if (parms.size() == getArgumentCount()) { + for (int j = 0; j < parms.size(); j++) { + JavaType ptype = parms.get(j).getType(); String type = ptype.getValue(); - int ndim = ptype.getDimensions(); - while (ndim-- > 0) { - type += "[]"; + if (ptype instanceof JavaClass) { + int ndim = ((JavaClass)ptype).getDimensions(); + while (ndim-- > 0) { + type += "[]"; + } } String comp = getArgumentType(j); if (!comp.equals(type)) { @@ -90,7 +94,7 @@ public class ClassItemSourceWrapper extends ClassItemWrapper * * @return source information */ - private Member getItemSource() { + private JavaMember getItemSource() { if (!m_checkedSource) { m_checkedSource = true; IClass clas = getContainingClass(); @@ -101,9 +105,9 @@ public class ClassItemSourceWrapper extends ClassItemWrapper if (jc != null) { if (isMethod()) { String mname = getName(); - JavaMethod[] methods = jc.getMethods(); - for (int i = 0; i < methods.length; i++) { - JavaMethod method = methods[i]; + List methods = jc.getMethods(); + for (int i = 0; i < methods.size(); i++) { + JavaMethod method = methods.get(i); if (mname.equals(method.getName())) { if (matchSignature(method)) { m_itemSource = method; @@ -142,7 +146,7 @@ public class ClassItemSourceWrapper extends ClassItemWrapper * @see org.jibx.binding.model.IClassItem#getJavaDoc() */ public String getJavaDoc() { - Member src = getItemSource(); + JavaMember src = getItemSource(); if (src == null) { return null; } else if (isMethod()) { @@ -181,12 +185,12 @@ public class ClassItemSourceWrapper extends ClassItemWrapper if (isMethod()) { JavaMethod jm = (JavaMethod)getItemSource(); if (jm != null) { - String name = jm.getParameters()[index].getName(); - DocletTag[] tags = jm.getTagsByName("param"); - for (int i = 0; i < tags.length; i++) { - DocletTag tag = tags[i]; - String[] parms = tag.getParameters(); - if (parms != null && parms.length > 0 && name.equals(parms[0])) { + String name = jm.getParameters().get(index).getName(); + List tags = jm.getTagsByName("param"); + for (int i = 0; i < tags.size(); i++) { + DocletTag tag = tags.get(i); + List parms = tag.getParameters(); + if (parms != null && parms.size() > 0 && name.equals(parms.get(0))) { String text = tag.getValue().trim(); if (text.startsWith(name)) { text = text.substring(name.length()).trim(); @@ -210,8 +214,8 @@ public class ClassItemSourceWrapper extends ClassItemWrapper JavaMethod jm = (JavaMethod)getItemSource(); String name; if (jm != null) { - JavaParameter[] parameters = jm.getParameters(); - name = parameters[index].getName(); + List parameters = jm.getParameters(); + name = parameters.get(index).getName(); } else { name = super.getParameterName(index); } @@ -228,11 +232,11 @@ public class ClassItemSourceWrapper extends ClassItemWrapper JavaMethod jm = (JavaMethod)getItemSource(); if (jm != null) { String name = getExceptions()[index]; - DocletTag[] tags = jm.getTagsByName("throws"); - for (int i = 0; i < tags.length; i++) { - DocletTag tag = tags[i]; - String[] parms = tag.getParameters(); - if (parms != null && parms.length > 0 && name.equals(parms[0])) { + List tags = jm.getTagsByName("throws"); + for (int i = 0; i < tags.size(); i++) { + DocletTag tag = tags.get(i); + List parms = tag.getParameters(); + if (parms != null && parms.size() > 0 && name.equals(parms.get(0))) { return docText(tag.getValue()); } } --- build/src/org/jibx/custom/classes/ClassSourceLocator.java +++ build/src/org/jibx/custom/classes/ClassSourceLocator.java @@ -31,7 +31,7 @@ import org.jibx.binding.classes.ClassFile; import org.jibx.runtime.JiBXException; import org.jibx.util.IClass; -import com.thoughtworks.qdox.JavaDocBuilder; +import com.thoughtworks.qdox.JavaProjectBuilder; import com.thoughtworks.qdox.model.JavaClass; /** @@ -45,7 +45,7 @@ public class ClassSourceLocator implements IClassSourceLocator private final String[] m_sourcePaths; /** Source file parser. */ - private final JavaDocBuilder m_builder; + private final JavaProjectBuilder m_builder; /** Set of classes parsed. */ private final Set m_lookupSet; @@ -57,7 +57,7 @@ public class ClassSourceLocator implements IClassSourceLocator */ public ClassSourceLocator(String[] paths) { m_sourcePaths = paths; - m_builder = new JavaDocBuilder(); + m_builder = new JavaProjectBuilder(); m_lookupSet = new HashSet(); } -- 2.1.0