/** * {@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; } }
/** * {@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; } }
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; }
/** * 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')" }; } } }
throws JDOMException, IOException { ComplexTypeDescriptor complexDescriptor = (ComplexTypeDescriptor) typeDescriptor; for (Iterator inputIterator = complexDescriptor.getElements() .iterator(); inputIterator.hasNext();) { TypeDescriptor elementType = (TypeDescriptor) inputIterator.next();
if (workerDesc instanceof ComplexTypeDescriptor) { for (Iterator iterator = ((ComplexTypeDescriptor) workerDesc) .getElements().iterator(); iterator.hasNext();) { TypeDescriptor desc = (TypeDescriptor) iterator .next();
if (workerDesc instanceof ComplexTypeDescriptor) { for (Iterator iterator = ((ComplexTypeDescriptor) workerDesc) .getElements().iterator(); iterator.hasNext();) { TypeDescriptor desc = (TypeDescriptor) iterator.next(); if (desc.getName().equals(portToSplit.getName())) {
public void testForCyclicTrue() { ComplexTypeDescriptor a = new ComplexTypeDescriptor(); a.setName("a"); a.setType("outertype"); ComplexTypeDescriptor b = new ComplexTypeDescriptor(); b.setName("b"); b.setType("middletype"); ComplexTypeDescriptor c = new ComplexTypeDescriptor(); c.setName("c"); c.setType("innertype"); a.getElements().add(b); b.getElements().add(c); c.getElements().add(a); assertTrue("should be identified as cyclic", TypeDescriptor.isCyclic(a)); }
@Test public void testCyclicFromElement() throws Exception { String xml = "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"typename\" name=\"a\" qname=\"{namespace}typename\"><s:elements><s:complextype id=\"{namespace}typename\" /></s:elements></s:complextype></s:extensions>"; Element el = new SAXBuilder().build(new StringReader(xml)) .getRootElement(); TypeDescriptor a = XMLSplitterSerialisationHelper .extensionXMLToTypeDescriptor(el); assertTrue("wrong type", a instanceof ComplexTypeDescriptor); assertEquals("wrong name", "a", a.getName()); List<TypeDescriptor> a_elements = ((ComplexTypeDescriptor) a).getElements(); assertEquals("should be only 1 element", 1, a_elements.size()); TypeDescriptor b = a_elements.get(0); assertTrue("wrong type", b instanceof ComplexTypeDescriptor); List<TypeDescriptor> b_elements = ((ComplexTypeDescriptor) b).getElements(); assertEquals("should be only 1 element", 1, b_elements.size()); assertEquals("b should contain a reference to a", a.toString(), b_elements.get(0).toString()); }
List<TypeDescriptor> elements = ((ComplexTypeDescriptor) descriptor).getElements(); String[] names = new String[elements.size()]; Class<?>[] types = new Class<?>[elements.size()];
List<TypeDescriptor> elements = ((ComplexTypeDescriptor) descriptor).getElements(); String[] names = new String[elements.size()]; Class<?>[] types = new Class<?>[elements.size()];
.getElements().size()); assertEquals("wrong name for first element", "bid", (typeDesc.getElements().get(0)).getName()); assertEquals("wrong name for 2nd element", "spokeModel", (typeDesc.getElements().get(1)).getName()); assertEquals("wrong name for 3rd element", "subunit", (typeDesc.getElements().get(2)).getName()); typeDesc.getElements().get(2) instanceof ArrayTypeDescriptor); ArrayTypeDescriptor arrayTypeDesc = (ArrayTypeDescriptor) typeDesc .getElements().get(2); typeDesc.getElements().size()); assertEquals("wrong name for first element", "id", (typeDesc.getElements().get(0)).getName()); assertEquals("wrong type for first element", "int", (typeDesc.getElements().get(0)).getType()); (typeDesc.getElements().get(6)).getName()); assertEquals("wrong type for last element", "int", (typeDesc.getElements().get(6)).getType());
public void testForCyclicFalse() { ComplexTypeDescriptor a = new ComplexTypeDescriptor(); a.setName("a"); a.setType("person"); ComplexTypeDescriptor b = new ComplexTypeDescriptor(); b.setName("b"); b.setType("name"); ComplexTypeDescriptor c = new ComplexTypeDescriptor(); c.setName("c"); c.setType("age"); a.getElements().add(b); a.getElements().add(c); assertFalse("should be not identified as cyclic", TypeDescriptor .isCyclic(a)); }
public void testForCyclicTrueWithArray() { ComplexTypeDescriptor a = new ComplexTypeDescriptor(); a.setName("a"); a.setType("outertype"); ArrayTypeDescriptor b = new ArrayTypeDescriptor(); b.setName("b"); b.setType("arraytype"); ComplexTypeDescriptor c = new ComplexTypeDescriptor(); c.setName("c"); c.setType("innertype"); a.getElements().add(b); b.setElementType(c); c.getElements().add(a); assertTrue("should be identified as cyclic", TypeDescriptor.isCyclic(a)); }
@Test public void testCyclicToElement() throws Exception { ComplexTypeDescriptor a = new ComplexTypeDescriptor(); a.setName("a"); a.setType("typename"); a.setQnameFromString("{namespace}typename"); ComplexTypeDescriptor b = new ComplexTypeDescriptor(); b.setName("b"); b.setType("typename2"); b.setQnameFromString("{namespace}typename2"); a.getElements().add(b); b.getElements().add(a); Element el = XMLSplitterSerialisationHelper .typeDescriptorToExtensionXML(a); String xml = new XMLOutputter().outputString(el); assertEquals( "unexpected xml", "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"typename\" name=\"a\" qname=\"{namespace}typename\"><s:elements><s:complextype optional=\"false\" unbounded=\"false\" typename=\"typename2\" name=\"b\" qname=\"{namespace}typename2\"><s:elements><s:complextype id=\"{namespace}typename\" optional=\"false\" unbounded=\"false\" typename=\"typename\" name=\"a\" /></s:elements></s:complextype></s:elements></s:complextype></s:extensions>", xml); }
@Test public void testCyclicToElement2() throws Exception { ComplexTypeDescriptor a = new ComplexTypeDescriptor(); a.setName("a"); a.setType("typename"); a.setQnameFromString("{namespace}typename"); a.getElements().add(a); Element el = XMLSplitterSerialisationHelper .typeDescriptorToExtensionXML(a); String xml = new XMLOutputter().outputString(el); assertEquals( "unexpected xml", "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"typename\" name=\"a\" qname=\"{namespace}typename\"><s:elements><s:complextype id=\"{namespace}typename\" optional=\"false\" unbounded=\"false\" typename=\"typename\" name=\"a\" /></s:elements></s:complextype></s:extensions>", xml); }
assertEquals("wrong name", "parameters", complexTypeDesc.getName()); assertEquals("wrong number of elements", 3, complexTypeDesc .getElements().size()); .getElements().get(0); assertFalse("db should not be unbounded", typeDesc.isUnbounded()); typeDesc = complexTypeDesc.getElements().get(1); assertEquals("wrong name", "tool", typeDesc.getName()); assertEquals("wrong type", "string", typeDesc.getType()); assertFalse("tool should not be unbounded", typeDesc.isUnbounded()); typeDesc = complexTypeDesc.getElements().get(2); assertEquals("wrong name", "email", typeDesc.getName()); assertEquals("wrong type", "string", typeDesc.getType());