You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2016/08/12 13:13:25 UTC

[37/46] incubator-taverna-plugin-gis git commit: PortDataTypeDescriptroFactory --> PortDataDescriptorFactory

PortDataTypeDescriptroFactory --> PortDataDescriptorFactory


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/commit/99e78b2e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/tree/99e78b2e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/diff/99e78b2e

Branch: refs/heads/taverna2
Commit: 99e78b2e49c456269ff4dfead5f38cd909237cc9
Parents: 64af2fb
Author: edikaradumi <ed...@gmail.com>
Authored: Sat Aug 6 00:05:41 2016 +0100
Committer: edikaradumi <ed...@gmail.com>
Committed: Sat Aug 6 00:05:41 2016 +0100

----------------------------------------------------------------------
 .../gis/client/PortDataDescriptorFactory.java   | 311 +++++++++++++++++++
 .../client/PortDataTypeDescriptroFactory.java   |  16 -
 2 files changed, 311 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/99e78b2e/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataDescriptorFactory.java
----------------------------------------------------------------------
diff --git a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataDescriptorFactory.java b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataDescriptorFactory.java
new file mode 100644
index 0000000..0f440ed
--- /dev/null
+++ b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataDescriptorFactory.java
@@ -0,0 +1,311 @@
+package org.apache.taverna.gis.client;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.opengis.wps.x100.CRSsType;
+import net.opengis.wps.x100.ComplexDataCombinationsType;
+import net.opengis.wps.x100.ComplexDataDescriptionType;
+import net.opengis.wps.x100.InputDescriptionType;
+import net.opengis.wps.x100.OutputDescriptionType;
+
+public class PortDataDescriptroFactory {
+
+	private static PortDataDescriptroFactory instance;
+	
+	protected PortDataDescriptroFactory(){}
+	
+	public static PortDataDescriptroFactory getInstance()
+	{
+		if (instance==null)
+			return new PortDataDescriptroFactory();
+		else
+			return instance;
+	}
+	
+	public IPortDataDescriptor getPortDataDescriptor(InputDescriptionType inputPort) {
+		
+		if (inputPort.getLiteralData() != null)
+		{
+			LiteralPortDataDescriptor literalPort = new LiteralPortDataDescriptor();
+			
+			literalPort.setName(inputPort.getIdentifier().getStringValue());
+			literalPort.setDepth(getInputPortDepth(inputPort));
+			literalPort.setAllowLiteralValues(true);
+			literalPort.setHandledReferenceSchemes(null); // is not used in Taverna
+			literalPort.setTranslatedElementType(String.class);
+			literalPort.setRequired(inputPort.getMinOccurs().compareTo(BigInteger.valueOf(1))>0?true:false);
+			
+			return literalPort;
+		}
+		
+		if (inputPort.getComplexData() != null)
+		{
+			ComplexPortDataDescriptor complexPort = new ComplexPortDataDescriptor();
+			
+			complexPort.setName(inputPort.getIdentifier().getStringValue());
+			complexPort.setDepth(getInputPortDepth(inputPort));
+			complexPort.setAllowLiteralValues(true);
+			complexPort.setHandledReferenceSchemes(null); // is not used in Taverna
+			complexPort.setTranslatedElementType(String.class);
+			complexPort.setRequired(inputPort.getMinOccurs().compareTo(BigInteger.valueOf(1))>0?true:false);
+			
+			complexPort.setSupportedComplexFormats(getInputPortSupportedComplexFormats(inputPort));
+			complexPort.setDefaultComplexFormat(getInputPortDefaultComplexFormat(inputPort));
+			
+			return complexPort;
+		}
+
+		if (inputPort.getBoundingBoxData() != null)
+		{
+			BBoxPortDataDescriptor bboxPort = new BBoxPortDataDescriptor();
+			
+			bboxPort.setName(inputPort.getIdentifier().getStringValue());
+			bboxPort.setDepth(getInputPortDepth(inputPort));
+			bboxPort.setAllowLiteralValues(true);
+			bboxPort.setHandledReferenceSchemes(null); // is not used in Taverna
+			bboxPort.setTranslatedElementType(String.class);
+			bboxPort.setRequired(inputPort.getMinOccurs().compareTo(BigInteger.valueOf(1))>0?true:false);
+			
+			bboxPort.setSupportedBoundingBoxFormats(getInputPortSupportedBoundingBoxFormats(inputPort));
+			bboxPort.setDefaultBoundingBoxFormat(getInputPortDefaultBoundingBoxFormats(inputPort));
+			
+			return bboxPort;
+		}
+		
+		return null;
+		
+	}
+	
+	public IPortDataDescriptor getPortDataDescriptor(OutputDescriptionType outputPort)
+	{
+		if (outputPort.getLiteralOutput() != null)
+		{
+			LiteralPortDataDescriptor literalPort = new LiteralPortDataDescriptor();
+			
+			literalPort.setName(outputPort.getIdentifier().getStringValue());
+			literalPort.setDepth(getOutputPortDepth(outputPort));
+			
+			return literalPort;
+		}
+		
+		if (outputPort.getComplexOutput() != null)
+		{
+			ComplexPortDataDescriptor complexPort = new ComplexPortDataDescriptor();
+			
+			complexPort.setName(outputPort.getIdentifier().getStringValue());
+			complexPort.setDepth(getOutputPortDepth(outputPort));
+			
+			complexPort.setSupportedComplexFormats(getOutputPortSupportedComplexFormats(outputPort));
+			complexPort.setDefaultComplexFormat(getOutputPortDefaultComplexFormat(outputPort));
+			
+			return complexPort;
+		}
+
+		if (outputPort.getBoundingBoxOutput() != null)
+		{
+			BBoxPortDataDescriptor bboxPort = new BBoxPortDataDescriptor();
+			
+			bboxPort.setName(outputPort.getIdentifier().getStringValue());
+			bboxPort.setDepth(getOutputPortDepth(outputPort));
+			
+			bboxPort.setSupportedBoundingBoxFormats(getOutputPortSupportedBoundingBoxFormats(outputPort));
+			bboxPort.setDefaultBoundingBoxFormat(getOutputPortDefaultBoundingBoxFormats(outputPort));
+			
+			return bboxPort;
+		}
+		
+		return null;
+		
+	}
+	
+	/**
+	 * @param input port
+	 * @return List of supported formats
+	 */
+	private List<ComplexDataFormat> getInputPortSupportedComplexFormats(InputDescriptionType inputPort)
+	{
+		List<ComplexDataFormat> supportedComplexFormats = new ArrayList<ComplexDataFormat>();
+		
+		if (inputPort.getComplexData()==null)
+			return supportedComplexFormats;
+		else
+		{
+			ComplexDataCombinationsType complexDataSupportedTypes = inputPort.getComplexData().getSupported();
+			
+			if (complexDataSupportedTypes.sizeOfFormatArray()==0)
+				return supportedComplexFormats;
+			
+			for(ComplexDataDescriptionType format : complexDataSupportedTypes.getFormatArray())
+			{
+				supportedComplexFormats.add(new ComplexDataFormat(format.getMimeType(),format.getEncoding(), format.getSchema()));
+			}
+		}
+		
+		return supportedComplexFormats;
+	}
+	
+	private ComplexDataFormat getInputPortDefaultComplexFormat(InputDescriptionType inputPort)
+	{
+		ComplexDataFormat defaultFormat = null;
+		
+		if (inputPort.getComplexData()==null)
+			if (inputPort.getComplexData().getDefault()!=null)
+				if(inputPort.getComplexData().getDefault().getFormat()!=null)
+				{
+					ComplexDataDescriptionType outputDefaultFormat = inputPort.getComplexData().getDefault().getFormat();
+					defaultFormat = new ComplexDataFormat(outputDefaultFormat.getMimeType(),outputDefaultFormat.getEncoding(),outputDefaultFormat.getSchema());
+				}
+					
+		return defaultFormat;
+		
+	}
+	
+	private List<String> getInputPortSupportedBoundingBoxFormats(InputDescriptionType inputPort)
+	{
+		List<String> supportedBoundingBoxFormats = new ArrayList<String>();
+		
+		if (inputPort.getBoundingBoxData()==null)
+			return supportedBoundingBoxFormats;
+		else
+		{
+			CRSsType boundingBoxDataSupportedTypes = inputPort.getBoundingBoxData().getSupported();
+			
+			if (boundingBoxDataSupportedTypes.sizeOfCRSArray()==0)
+				return supportedBoundingBoxFormats;
+			
+			for(String format : boundingBoxDataSupportedTypes.getCRSArray())
+			{
+				supportedBoundingBoxFormats.add(format);
+			}
+			
+		}
+		
+		return supportedBoundingBoxFormats;
+
+	}
+	
+	private String getInputPortDefaultBoundingBoxFormats(InputDescriptionType inputPort)
+	{
+		String defaultFormat = null;
+		
+		if (inputPort.getBoundingBoxData()==null)
+			if (inputPort.getBoundingBoxData().getDefault()!=null)
+				if(inputPort.getBoundingBoxData().getDefault().getCRS()!=null)
+				{
+					defaultFormat = inputPort.getBoundingBoxData().getDefault().getCRS();
+				}
+					
+		return defaultFormat;
+		
+	}
+	
+	/**
+	 * @param input port
+	 * @return List of supported formats
+	 */
+	private List<ComplexDataFormat> getOutputPortSupportedComplexFormats(OutputDescriptionType outputPort)
+	{
+		List<ComplexDataFormat> supportedComplexFormats = new ArrayList<ComplexDataFormat>();
+		
+		if (outputPort.getComplexOutput()==null)
+			return supportedComplexFormats;
+		else
+		{
+			ComplexDataCombinationsType complexDataSupportedTypes = outputPort.getComplexOutput().getSupported();
+			
+			if (complexDataSupportedTypes.sizeOfFormatArray()==0)
+				return supportedComplexFormats;
+			
+			for(ComplexDataDescriptionType format : complexDataSupportedTypes.getFormatArray())
+			{
+				supportedComplexFormats.add(new ComplexDataFormat(format.getMimeType(),format.getEncoding(), format.getSchema()));
+			}
+		}
+		
+		return supportedComplexFormats;
+	}
+	
+	private ComplexDataFormat getOutputPortDefaultComplexFormat(OutputDescriptionType outputPort)
+	{
+		ComplexDataFormat defaultFormat = null;
+		
+		if (outputPort.getComplexOutput()==null)
+			if (outputPort.getComplexOutput().getDefault()!=null)
+				if(outputPort.getComplexOutput().getDefault().getFormat()!=null)
+				{
+					ComplexDataDescriptionType outputDefaultFormat = outputPort.getComplexOutput().getDefault().getFormat();
+					defaultFormat = new ComplexDataFormat(outputDefaultFormat.getMimeType(),outputDefaultFormat.getEncoding(),outputDefaultFormat.getSchema());
+				}
+					
+		return defaultFormat;
+		
+	}
+	
+	private List<String> getOutputPortSupportedBoundingBoxFormats(OutputDescriptionType outputPort)
+	{
+		List<String> supportedBoundingBoxFormats = new ArrayList<String>();
+		
+		if (outputPort.getBoundingBoxOutput()==null)
+			return supportedBoundingBoxFormats;
+		else
+		{
+			CRSsType boundingBoxDataSupportedTypes = outputPort.getBoundingBoxOutput().getSupported();
+			
+			if (boundingBoxDataSupportedTypes.sizeOfCRSArray()==0)
+				return supportedBoundingBoxFormats;
+			
+			for(String format : boundingBoxDataSupportedTypes.getCRSArray())
+			{
+				supportedBoundingBoxFormats.add(format);
+			}
+			
+		}
+		
+		return supportedBoundingBoxFormats;
+
+	}
+	
+	private String getOutputPortDefaultBoundingBoxFormats(OutputDescriptionType outputPort)
+	{
+		String defaultFormat = null;
+		
+		if (outputPort.getBoundingBoxOutput()==null)
+			if (outputPort.getBoundingBoxOutput().getDefault()!=null)
+				if(outputPort.getBoundingBoxOutput().getDefault().getCRS()!=null)
+				{
+					defaultFormat = outputPort.getBoundingBoxOutput().getDefault().getCRS();
+				}
+					
+		return defaultFormat;
+		
+	}
+	
+	/**
+	 * @param inputPort
+	 * @return
+	 */
+	private int getInputPortDepth(InputDescriptionType inputPort)
+	{
+		// The input has cardinality (Min/Max Occurs) of 1 when it returns 1 value and greater than 1  when it 
+		// returns multiple values 
+		// if compareTo returns 1 then first value (MaxOccurs) is greater than 1. it means that there is more than one occurrence 
+		// therefore the depth is greater than 0
+		int depth = ((inputPort.getMaxOccurs().compareTo(BigInteger.valueOf(1))==1) ? 1 : 0);
+		
+		return depth;
+	}
+	
+	/**
+	 * @param inputPort
+	 * @return
+	 */
+	private int getOutputPortDepth(OutputDescriptionType outputPort)
+	{
+		// TODO: Calculate output port depth
+		int depth = 0;
+		
+		return depth;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/99e78b2e/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataTypeDescriptroFactory.java
----------------------------------------------------------------------
diff --git a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataTypeDescriptroFactory.java b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataTypeDescriptroFactory.java
deleted file mode 100644
index 2e472b5..0000000
--- a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataTypeDescriptroFactory.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.apache.taverna.gis.client;
-
-public class PortDataTypeDescriptroFactory {
-
-	public IPortDataDescriptor getPortDataType(PortDataType portDataType) {
-		switch (portDataType) {
-		case COMPLEX_DATA:
-			return new ComplexPortDataDescriptor();
-		case BOUNDING_BOX_DATA:
-			return new BBoxPortDataTypeDescriptor();
-
-		default:
-			return new LiteralPortDataDescriptor();
-		}
-	}
-}