private static int depthForDescriptor(TypeDescriptor desc) { if (desc instanceof ArrayTypeDescriptor && (!((ArrayTypeDescriptor)desc).isWrapped() || ((ArrayTypeDescriptor)desc).getElementType() instanceof BaseTypeDescriptor)) { return 1; } else { return 0; } }
private void executeForArrayType(Map<String,DataThing> result, List<Element> children) { ArrayTypeDescriptor arrayDescriptor = (ArrayTypeDescriptor) typeDescriptor; List<String> values = new ArrayList<String>(); XMLOutputter outputter = new XMLOutputter(); boolean isInnerBaseType = arrayDescriptor.getElementType() instanceof BaseTypeDescriptor; if (isInnerBaseType) { values=extractBaseTypeArrayFromChildren(children); } else { for (Iterator iterator = children.iterator(); iterator.hasNext();) { Element child = (Element) iterator.next(); values.add(outputter.outputString(child)); } } result.put(outputNames[0], DataThingFactory.bake(values)); }
/** * {@inheritDoc} * */ public Map<String, TypeDescriptor> getTypeDescriptorsForOutputPorts() throws UnknownOperationException, IOException { Map<String, TypeDescriptor> descriptors = new HashMap<String, TypeDescriptor>(); if (typeDescriptor instanceof ComplexTypeDescriptor) { for (TypeDescriptor desc : ((ComplexTypeDescriptor) typeDescriptor) .getElements()) { descriptors.put(desc.getName(), desc); } } else if (typeDescriptor instanceof ArrayTypeDescriptor) { TypeDescriptor desc = ((ArrayTypeDescriptor)typeDescriptor).getElementType(); descriptors.put(typeDescriptor.getName(), desc); } return descriptors; } }
public TypeDescriptor getTypeDescriptorForOutputPort(String portName) { TypeDescriptor result = null; if (typeDescriptor instanceof ComplexTypeDescriptor) { for (TypeDescriptor desc : ((ComplexTypeDescriptor) typeDescriptor) .getElements()) { if (desc.getName().equals(portName)) { result = desc; break; } } } else if (typeDescriptor instanceof ArrayTypeDescriptor) { TypeDescriptor desc = ((ArrayTypeDescriptor)typeDescriptor).getElementType(); if (typeDescriptor.getName().equals(portName)) { result = desc; } } return result; }
/** * {@inheritDoc} * */ public Map<String, TypeDescriptor> getTypeDescriptorsForInputPorts() throws UnknownOperationException, IOException { Map<String, TypeDescriptor> descriptors = new HashMap<String, TypeDescriptor>(); if (typeDescriptor instanceof ComplexTypeDescriptor) { for (TypeDescriptor desc : ((ComplexTypeDescriptor)typeDescriptor).getElements()) { descriptors.put(desc.getName(), desc); } } else if (typeDescriptor instanceof ArrayTypeDescriptor) { TypeDescriptor desc = ((ArrayTypeDescriptor)typeDescriptor).getElementType(); descriptors.put(typeDescriptor.getName(), desc); } return descriptors; } }
/** * Returns a TypeDescriptor for the given port name. If the port cannot be found, or is not based upon a complex type, then null is returned. * @param portName * @return */ public TypeDescriptor getTypeDescriptorForInputPort(String portName) { TypeDescriptor result = null; if (typeDescriptor instanceof ComplexTypeDescriptor) { for (TypeDescriptor desc : ((ComplexTypeDescriptor)typeDescriptor).getElements()) { if (desc.getName().equals(portName)) { result = desc; break; } } } else if (typeDescriptor instanceof ArrayTypeDescriptor) { TypeDescriptor desc = ((ArrayTypeDescriptor)typeDescriptor).getElementType(); if (typeDescriptor.getName().equals(portName)) { result = desc; } } return result; }
private void defineFromTypeDescriptor() { if (typeDescriptor instanceof ComplexTypeDescriptor) { List elements = ((ComplexTypeDescriptor) typeDescriptor) .getElements(); inputNames = new String[elements.size()]; inputTypes = new String[elements.size()]; Class[] types = new Class[elements.size()]; TypeDescriptor.retrieveSignature(elements, inputNames, types); for (int i = 0; i < types.length; i++) { inputTypes[i] = TypeDescriptor.translateJavaType(types[i]); } } else if (typeDescriptor instanceof ArrayTypeDescriptor) { inputNames = new String[] { typeDescriptor.getType() }; if (((ArrayTypeDescriptor) typeDescriptor).getElementType() instanceof BaseTypeDescriptor) { inputTypes = new String[] { "l('text/plain')" }; } else { inputTypes = new String[] { "l('text/xml')" }; } } }
private void defineFromTypeDescriptor() { if (typeDescriptor instanceof ComplexTypeDescriptor) { List elements = ((ComplexTypeDescriptor) typeDescriptor) .getElements(); outputNames = new String[elements.size()]; outputTypes = new String[elements.size()]; Class[] types = new Class[elements.size()]; TypeDescriptor.retrieveSignature(elements, outputNames, types); for (int i = 0; i < types.length; i++) { outputTypes[i] = TypeDescriptor.translateJavaType(types[i]); } } else if (typeDescriptor instanceof ArrayTypeDescriptor) { outputNames = new String[] { typeDescriptor.getName() }; if (((ArrayTypeDescriptor) typeDescriptor).getElementType() instanceof BaseTypeDescriptor) { outputTypes = new String[] { "l('text/plain')" }; } else { outputTypes = new String[] { "l('text/xml')" }; } } }
.isWrapped()) { typeDescriptor = ((ArrayTypeDescriptor) typeDescriptor) .getElementType(); .getElementType();
typeDescriptor = desc; if (typeDescriptor instanceof ArrayTypeDescriptor && !((ArrayTypeDescriptor)typeDescriptor).isWrapped()) { typeDescriptor=((ArrayTypeDescriptor)typeDescriptor).getElementType(); .getElementType();
.isWrapped(); TypeDescriptor arrayElementType = ((ArrayTypeDescriptor) elementType) .getElementType(); if (!wrapped) { itemkey = elementType.getName();
portBean.setName(descriptor.getName()); if (((ArrayTypeDescriptor) descriptor).getElementType() instanceof BaseTypeDescriptor) { portBean.setMimeTypes(Collections .singletonList("l('text/plain')"));
portBean.setDepth(1); portBean.setGranularDepth(1); if (((ArrayTypeDescriptor) descriptor).getElementType() instanceof BaseTypeDescriptor) { portBean.setMimeTypes(Collections .singletonList("l('text/plain')"));
.getTypeDescriptorForInputPort(portName); if (descriptor instanceof ArrayTypeDescriptor && !((ArrayTypeDescriptor)descriptor).isWrapped()) { descriptor=((ArrayTypeDescriptor)descriptor).getElementType(); descriptor=((ArrayTypeDescriptor)descriptor).getElementType();
@Test public void testArrayType() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("bind.wsdl")); List<TypeDescriptor> inputs = parser .getOperationInputParameters("BIVGetRecords"); List<TypeDescriptor> outputs = parser .getOperationOutputParameters("BIVGetRecords"); assertEquals("wrong number of inputs", 1, inputs.size()); assertTrue("input should be of AArrayTypeDescriptor", inputs.get(0) instanceof ArrayTypeDescriptor); ArrayTypeDescriptor arrayTypeDesc = (ArrayTypeDescriptor) inputs.get(0); assertEquals("wrong name", "ids", arrayTypeDesc.getName()); assertEquals("wrong type", "ArrayOf_xsd_int", arrayTypeDesc.getType()); TypeDescriptor typeDesc = arrayTypeDesc.getElementType(); assertTrue("element should be of type BaseTypeDescriptor", typeDesc instanceof BaseTypeDescriptor); assertEquals("wrong type", "int", typeDesc.getType()); assertEquals("wrong number of outputs", 1, outputs.size()); assertTrue("output should be of ArrayTypeDescriptor", outputs.get(0) instanceof ArrayTypeDescriptor); arrayTypeDesc = (ArrayTypeDescriptor) outputs.get(0); assertEquals("wrong name", "BIVRecords", arrayTypeDesc.getName()); assertEquals("wrong type", "ArrayOfBIVRecord", arrayTypeDesc.getType()); typeDesc = arrayTypeDesc.getElementType(); assertEquals("wrong type", "BIVRecord", typeDesc.getType()); }
.getType()); typeDesc = (ComplexTypeDescriptor) arrayTypeDesc.getElementType();