in src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java [89:204]
private void populateAttribList() throws WrapperFault
{
CElementDecl elemi = type.getExtensionBaseType();
if (elemi != null)
{
extensionBaseAttrib = new ParameterInfo();
extensionBaseAttrib.setParamName(elemi.getName().getLocalPart(), wscontext.getTypemap());
Type elementType = elemi.getType();
if (CUtils.getSimpleType(elementType.getName()) != null)
extensionBaseAttrib.setTypeName(CUtils.getSimpleType(elementType.getName()));
else
{
extensionBaseAttrib.setTypeName(elementType.getLanguageSpecificName());
extensionBaseAttrib.setSimpleType(false);
}
extensionBaseAttrib.setType(elemi.getType());
extensionBaseAttrib.setElementName(elemi.getName());
}
ArrayList attribfields = new ArrayList();
ArrayList elementfields = new ArrayList();
Iterator names = type.getAttributes();
if (names != null)
while (names.hasNext())
attribfields.add(names.next());
names = type.getElementnames();
while (names.hasNext())
{
elementfields.add(names.next());
}
int intAttrFieldSz = attribfields.size();
attributeParamCount = intAttrFieldSz;
int intEleFieldSz = elementfields.size();
this.attribs = new ParameterInfo[intAttrFieldSz + intEleFieldSz];
for (int i = 0; i < intAttrFieldSz; i++)
{
CContainedAttribute attr = (CContainedAttribute)attribfields.get(i);
this.attribs[i] = new ParameterInfo();
this.attribs[i].setParamName(attr.getName(), wscontext.getTypemap());
if (CUtils.isSimpleType(attr.getType().getName()))
this.attribs[i].setTypeName(CUtils.getSimpleType(attr.getType().getName()));
else
{
this.attribs[i].setTypeName(attr.getType().getLanguageSpecificName());
this.attribs[i].setSimpleType(false);
}
this.attribs[i].setType(attr.getType());
this.attribs[i].setAttribute(true);
this.attribs[i].setElementName(attr.getType().getName());
this.attribs[i].setOptional(attr.isOptional());
this.attribs[i].setAttributeFixedValue(attr.getFixedValue());
this.attribs[i].setAttributeDefaultValue(attr.getDefaultValue());
}
for (int i = intAttrFieldSz; i < intAttrFieldSz + intEleFieldSz; i++)
{
this.attribs[i] = new ParameterInfo();
this.attribs[i].setParamName((String) elementfields.get(i - attributeParamCount), wscontext.getTypemap());
CElementDecl elem = type.getElementForElementName(this.attribs[i].getParamName());
Type elementType = elem.getType();
this.attribs[i].setAnyElement(elementType.isAnyElement());
if (CUtils.isSimpleType(elementType.getName()))
this.attribs[i].setTypeName(CUtils.getSimpleType(elementType.getName()));
else
{
this.attribs[i].setTypeName(elementType.getLanguageSpecificName());
this.attribs[i].setSimpleType(false);
}
this.attribs[i].setType(elementType);
this.attribs[i].setElementName(elem.getName());
this.attribs[i].setChoiceElement(elem.getChoiceElement());
this.attribs[i].setAllElement(elem.getAllElement());
this.attribs[i].setNsQualified(elem.getNsQualified());
this.attribs[i].setMinOccurs(elem.getMinOccurs());
this.attribs[i].setMaxOccurs(elem.getMaxOccurs());
this.attribs[i].setNillable(elem.isNillable());
if (elementType.isArray())
{
Type arrayType = CUtils.getArrayType(elementType);
//get contained type
this.attribs[i].setArray(true);
if (CUtils.isSimpleType(arrayType.getName()))
{
this.attribs[i].setTypeName(CUtils.getSimpleType(arrayType.getName()));
this.attribs[i].setSimpleType(true);
}
else
{
this.attribs[i].setTypeName(arrayType.getLanguageSpecificName());
this.attribs[i].setSimpleType(false);
}
this.attribs[i].setType(arrayType);
}
else if (elem.getMaxOccurs() > 1)
{
//arrays but the same type as was set above
this.attribs[i].setArray(true);
}
if (elem.getMinOccurs() == 0)
this.attribs[i].setOptional(true);
}
}