}
for (Iterator iter = operations.iterator(); iter.hasNext();) {
OperationDesc operationDesc = (OperationDesc) iter.next();
ArrayList parameters = new ArrayList(operationDesc.getParameters());
ParameterDesc returnParameterDesc = operationDesc.getReturnParamDesc();
if (null != returnParameterDesc.getTypeQName() &&
false == returnParameterDesc.getTypeQName().equals(XMLType.AXIS_VOID)) {
parameters.add(returnParameterDesc);
}
for (Iterator iterator = parameters.iterator(); iterator.hasNext();) {
ParameterDesc parameterDesc = (ParameterDesc) iterator.next();
QName typeQName = parameterDesc.getTypeQName();
if (null == typeQName) {
continue;
} else if (mappedTypeQNames.contains(typeQName)) {
continue;
} else if (typeQName.getNamespaceURI().equals(XML_SCHEMA_NS) ||
typeQName.getNamespaceURI().equals(SOAP_ENCODING_NS)) {
continue;
}
SchemaTypeKey key = (SchemaTypeKey) qNameToKey.get(typeQName);
if (null == key) {
log.warn("Type QName [" + typeQName + "] defined by operation [" +
operationDesc + "] has not been found in schema: " + schemaTypeKeyToSchemaTypeMap);
continue;
}
SchemaType schemaType = (SchemaType) schemaTypeKeyToSchemaTypeMap.get(key);
mappedTypeQNames.add(key.getqName());
if (false == schemaType.isSimpleType()) {
if (false == parameterDesc.getJavaType().isArray()) {
if (false == mappedTypeQNames.contains(schemaType.getName())) {
// TODO: this lookup is not enough: the jaxrpc mapping file may define an anonymous
// mapping.
log.warn("Operation [" + operationDesc + "] uses XML type [" + schemaType +
"], whose mapping is not declared by the jaxrpc mapping file.\n Continuing deployment; " +
"yet, the deployment is not-portable.");
}
continue;
}
}
Class clazz = parameterDesc.getJavaType();
TypeInfo.UpdatableTypeInfo internalTypeInfo = defineSerializerPair(schemaType, clazz);
setTypeQName(internalTypeInfo, key);
internalTypeInfo.setFields(new FieldDesc[0]);
typeInfoList.add(internalTypeInfo.buildTypeInfo());