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();
- }
- }
-}