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:19 UTC
[31/46] incubator-taverna-plugin-gis git commit: Get additional port
info in gis-client implementation
Get additional port info in gis-client implementation
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/09cf820d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/tree/09cf820d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/diff/09cf820d
Branch: refs/heads/taverna2
Commit: 09cf820d4fc910f5e8107f92ce99d2b016a97168
Parents: 5f8b4ca
Author: edikaradumi <ed...@gmail.com>
Authored: Thu Aug 4 06:37:24 2016 +0100
Committer: edikaradumi <ed...@gmail.com>
Committed: Thu Aug 4 06:37:24 2016 +0100
----------------------------------------------------------------------
.../gis/client/ComplexDataTypeDescriptor.java | 37 +++
.../apache/taverna/gis/client/PortDataType.java | 7 +
.../taverna/gis/client/PortTypeDescriptor.java | 41 ++-
.../gis/client/impl/GisClientNorthImpl.java | 282 +++++++++++++++----
4 files changed, 304 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/09cf820d/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/ComplexDataTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/ComplexDataTypeDescriptor.java b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/ComplexDataTypeDescriptor.java
new file mode 100644
index 0000000..3fa69cb
--- /dev/null
+++ b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/ComplexDataTypeDescriptor.java
@@ -0,0 +1,37 @@
+package org.apache.taverna.gis.client;
+
+public class ComplexDataTypeDescriptor {
+ private String mimeType;
+ private String encoding;
+ private String schema;
+
+ public ComplexDataTypeDescriptor() {
+ }
+
+ public ComplexDataTypeDescriptor(String mimeType, String encoding, String schema) {
+ this.mimeType = mimeType;
+ this.encoding = encoding;
+ this.schema = schema;
+ }
+
+ public String getMimeType() {
+ return mimeType;
+ }
+ public void setMimeType(String mimeType) {
+ this.mimeType = mimeType;
+ }
+ public String getEncoding() {
+ return encoding;
+ }
+ public void setEncoding(String encoding) {
+ this.encoding = encoding;
+ }
+ public String getSchema() {
+ return schema;
+ }
+ public void setSchema(String schema) {
+ this.schema = schema;
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/09cf820d/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataType.java
----------------------------------------------------------------------
diff --git a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataType.java b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataType.java
new file mode 100644
index 0000000..c288d01
--- /dev/null
+++ b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortDataType.java
@@ -0,0 +1,7 @@
+package org.apache.taverna.gis.client;
+
+public enum PortDataType {
+ LITERAL_DATA,
+ COMPLEX_DATA,
+ BOUNDING_BOX_DATA
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/09cf820d/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortTypeDescriptor.java b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortTypeDescriptor.java
index f6e5f16..4f25edc 100644
--- a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortTypeDescriptor.java
+++ b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/PortTypeDescriptor.java
@@ -8,9 +8,12 @@ public class PortTypeDescriptor {
private boolean allowLiteralValues;
private String handledReferenceSchemes;
private Class<?> translatedElementType;
+ private PortDataType portDataType;
private boolean isRequired;
- private List<String> supportedFormats;
- private String defaultFormat;
+ private List<ComplexDataTypeDescriptor> supportedComplexFormats;
+ private ComplexDataTypeDescriptor defaultComplexFormat;
+ private List<String> supportedBoundingBoxFormats;
+ private String defaultBoundingBoxFormat;
public String getName() {
return name;
@@ -42,23 +45,41 @@ public class PortTypeDescriptor {
public void setTranslatedElementType(Class<?> translatedElementType) {
this.translatedElementType = translatedElementType;
}
+ public PortDataType getPortDataType() {
+ return portDataType;
+ }
+ public void setPortDataType(PortDataType portDataType) {
+ this.portDataType = portDataType;
+ }
public boolean isRequired() {
return isRequired;
}
public void setRequired(boolean isRequired) {
this.isRequired = isRequired;
}
- public List<String> getSupportedFormats() {
- return supportedFormats;
+ public List<ComplexDataTypeDescriptor> getSupportedComplexFormats() {
+ return supportedComplexFormats;
+ }
+ public void setSupportedComplexFormats(List<ComplexDataTypeDescriptor> supportedComplexFormats) {
+ this.supportedComplexFormats = supportedComplexFormats;
+ }
+ public ComplexDataTypeDescriptor getDefaultComplexFormat() {
+ return defaultComplexFormat;
+ }
+ public void setDefaultComplexFormat(ComplexDataTypeDescriptor defaultComplexFormat) {
+ this.defaultComplexFormat = defaultComplexFormat;
+ }
+ public List<String> getSupportedBoundingBoxFormats() {
+ return supportedBoundingBoxFormats;
}
- public void setSupportedFormats(List<String> supportedFormats) {
- this.supportedFormats = supportedFormats;
+ public void setSupportedBoundingBoxFormats(List<String> supportedBoundingBoxFormats) {
+ this.supportedBoundingBoxFormats = supportedBoundingBoxFormats;
}
- public String getDefaultFormat() {
- return defaultFormat;
+ public String getDefaultBoundingBoxFormat() {
+ return defaultBoundingBoxFormat;
}
- public void setDefaultFormat(String defaultFormat) {
- this.defaultFormat = defaultFormat;
+ public void setDefaultBoundingBoxFormat(String defaultBoundingBoxFormat) {
+ this.defaultBoundingBoxFormat = defaultBoundingBoxFormat;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/09cf820d/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/impl/GisClientNorthImpl.java
----------------------------------------------------------------------
diff --git a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/impl/GisClientNorthImpl.java b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/impl/GisClientNorthImpl.java
index 2f123cd..514a54b 100644
--- a/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/impl/GisClientNorthImpl.java
+++ b/apache-taverna-plugin-gis-client/src/main/java/org/apache/taverna/gis/client/impl/GisClientNorthImpl.java
@@ -28,15 +28,19 @@ import java.util.HashMap;
import java.util.List;
import org.apache.log4j.Logger;
+import org.apache.taverna.gis.client.ComplexDataTypeDescriptor;
import org.apache.taverna.gis.client.IGisClient;
+import org.apache.taverna.gis.client.PortDataType;
import org.apache.taverna.gis.client.PortTypeDescriptor;
import org.n52.wps.client.WPSClientException;
import org.n52.wps.client.WPSClientSession;
import net.opengis.ows.x11.LanguageStringType;
+import net.opengis.wps.x100.CRSsType;
import net.opengis.wps.x100.CapabilitiesDocument;
import net.opengis.wps.x100.ComplexDataCombinationType;
import net.opengis.wps.x100.ComplexDataCombinationsType;
+import net.opengis.wps.x100.ComplexDataDescriptionType;
import net.opengis.wps.x100.InputDescriptionType;
import net.opengis.wps.x100.OutputDescriptionType;
import net.opengis.wps.x100.ProcessBriefType;
@@ -170,10 +174,12 @@ public class GisClientNorthImpl implements IGisClient {
myNewInputPort.setAllowLiteralValues(true);
myNewInputPort.setHandledReferenceSchemes(null); // is not used in Taverna
myNewInputPort.setTranslatedElementType(String.class);
+ myNewInputPort.setPortDataType(getPortDataType(input));
myNewInputPort.setRequired(input.getMinOccurs().compareTo(BigInteger.valueOf(1))>0?true:false);
- myNewInputPort.setSupportedFormats(getPortSupportedFormats(input));
-
-
+ myNewInputPort.setSupportedComplexFormats(getInputPortSupportedComplexFormats(input));
+ myNewInputPort.setDefaultComplexFormat(getInputPortDefaultComplexFormat(input));
+ myNewInputPort.setSupportedBoundingBoxFormats(getInputPortSupportedBoundingBoxFormats(input));
+ myNewInputPort.setDefaultBoundingBoxFormat(getInputPortDefaultBoundingBoxFormats(input));
inputPorts.add(myNewInputPort);
}
@@ -181,56 +187,6 @@ public class GisClientNorthImpl implements IGisClient {
return inputPorts;
}
- /**
- * @param input port
- * @return List of supported formats
- */
- private List<String> getPortSupportedFormats(InputDescriptionType inputPort)
- {
- List<String> supportedFormats = new ArrayList<String>();
-
- if (inputPort.getLiteralData() == null)
- return supportedFormats;
-
- if (inputPort.getComplexData()==null)
- return supportedFormats;
- else
- {
-
- inputPort.getBoundingBoxData().getSupported().getCRSArray();
- inputPort.getBoundingBoxData().getDefault().getCRS();
-
-
- ComplexDataCombinationsType complexDataType = inputPort.getComplexData().getSupported();
- inputPort.getComplexData().getDefault().getFormat();
- complexDataType.getFormatArray(0).getEncoding();
- complexDataType.getFormatArray(0).getMimeType();
- complexDataType.getFormatArray(0).getSchema();
-
-
- }
-
-
-
-
- return supportedFormats;
- }
-
- /**
- * @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;
- }
-
@Override
public List<PortTypeDescriptor> getTaverna2OutputPorts(String processID) {
List<PortTypeDescriptor> outputPorts = new ArrayList<PortTypeDescriptor>();
@@ -254,6 +210,13 @@ public class GisClientNorthImpl implements IGisClient {
myNewOutputPort.setName(output.getIdentifier().getStringValue());
myNewOutputPort.setDepth(0); // output port depth is always 1
+ myNewOutputPort.setPortDataType(getPortDataType(output));
+ myNewOutputPort.setRequired(false);
+ myNewOutputPort.setSupportedComplexFormats(getOutputPortSupportedComplexFormats(output));
+ myNewOutputPort.setDefaultComplexFormat(getOutputPortDefaultComplexFormat(output));
+ myNewOutputPort.setSupportedBoundingBoxFormats(getOutputPortSupportedBoundingBoxFormats(output));
+ myNewOutputPort.setDefaultBoundingBoxFormat(getOutputPortDefaultBoundingBoxFormats(output));
+
outputPorts.add(myNewOutputPort);
}
@@ -277,4 +240,217 @@ public class GisClientNorthImpl implements IGisClient {
}
+ private PortDataType getPortDataType(InputDescriptionType inputPort)
+ {
+ // set default dataType to literal data
+ PortDataType portDataType = PortDataType.LITERAL_DATA;
+
+ if (inputPort.getLiteralData()!=null)
+ return portDataType;
+
+ if(inputPort.getComplexData()!=null)
+ return PortDataType.COMPLEX_DATA;
+
+ if(inputPort.getBoundingBoxData()!=null)
+ return PortDataType.BOUNDING_BOX_DATA;
+
+ return portDataType;
+
+ }
+
+ private PortDataType getPortDataType(OutputDescriptionType outputPort)
+ {
+ // set default dataType to literal data
+ PortDataType portDataType = PortDataType.LITERAL_DATA;
+
+ if (outputPort.getLiteralOutput()!=null)
+ return portDataType;
+
+ if(outputPort.getComplexOutput()!=null)
+ return PortDataType.COMPLEX_DATA;
+
+ if(outputPort.getBoundingBoxOutput()!=null)
+ return PortDataType.BOUNDING_BOX_DATA;
+
+ return portDataType;
+
+ }
+
+ /**
+ * @param input port
+ * @return List of supported formats
+ */
+ private List<ComplexDataTypeDescriptor> getInputPortSupportedComplexFormats(InputDescriptionType inputPort)
+ {
+ List<ComplexDataTypeDescriptor> supportedComplexFormats = new ArrayList<ComplexDataTypeDescriptor>();
+
+ 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 ComplexDataTypeDescriptor(format.getMimeType(),format.getEncoding(), format.getSchema()));
+ }
+ }
+
+ return supportedComplexFormats;
+ }
+
+ private ComplexDataTypeDescriptor getInputPortDefaultComplexFormat(InputDescriptionType inputPort)
+ {
+ ComplexDataTypeDescriptor 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 ComplexDataTypeDescriptor(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<ComplexDataTypeDescriptor> getOutputPortSupportedComplexFormats(OutputDescriptionType outputPort)
+ {
+ List<ComplexDataTypeDescriptor> supportedComplexFormats = new ArrayList<ComplexDataTypeDescriptor>();
+
+ 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 ComplexDataTypeDescriptor(format.getMimeType(),format.getEncoding(), format.getSchema()));
+ }
+ }
+
+ return supportedComplexFormats;
+ }
+
+ private ComplexDataTypeDescriptor getOutputPortDefaultComplexFormat(OutputDescriptionType outputPort)
+ {
+ ComplexDataTypeDescriptor 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 ComplexDataTypeDescriptor(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;
+ }
+
}