format and [null,int] resolving
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/commit/2d28ba83 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/2d28ba83 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/2d28ba83 Branch: refs/heads/cwl-browse Commit: 2d28ba8300608a86c699691e278ced087e93cb7c Parents: 7b75067 Author: ThilinaManamgoda <[email protected]> Authored: Mon Jun 20 03:46:01 2016 +0530 Committer: ThilinaManamgoda <[email protected]> Committed: Mon Jun 20 03:46:01 2016 +0530 ---------------------------------------------------------------------- .../taverna/cwl/ui/serviceprovider/Testing.java | 6 ++- .../taverna/cwl/ui/view/CwlContextualView.java | 1 + .../org/apache/taverna/cwl/CwlDumyActivity.java | 55 +++++++++++++++++++- .../java/org/apache/taverna/cwl/PortDetail.java | 7 +++ 4 files changed, 65 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2d28ba83/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java index 50d8063..c509d11 100644 --- a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java +++ b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java @@ -81,9 +81,11 @@ public static void main(String[] args) { for(File file:cwlFiles) try { Yaml cwlReader = new Yaml(); - System.out.println(file.getName()); + // System.out.println(file.getName()); Map cwlFile = (Map) cwlReader.load(new FileInputStream(file)); - processInputs(cwlFile); + //processInputs(cwlFile); + if(file.getName().equals("bedtool-genomecov.cwl"))System.out.println(((String)(( ArrayList<Map>)cwlFile.get(INPUTS)).get(0).get("format")).split(":")[0]); + if(file.getName().equals("bedtool-genomecov.cwl"))System.out.println(((Map)(cwlFile.get("$namespaces"))).get("edam")); }catch(Exception e){ System.out.println(e.getMessage()); } http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2d28ba83/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java index ddc5d4d..2a036c7 100644 --- a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java +++ b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java @@ -44,6 +44,7 @@ public class CwlContextualView extends HTMLBasedActivityContextualView<CwlActivi private static final String TABLE_WIDTH = "100%"; private static final String TABLE_CELL_PADDING = "5%"; + private static final String FORMAT = "format"; private final CwlActivityConfigurationBean configurationBean; private final CwlDumyActivity activity; http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2d28ba83/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java index e8023f1..9b189ac 100644 --- a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java +++ b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java @@ -40,8 +40,21 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon private static final int DEPTH_1 = 1; private static final int DEPTH_2 = 2; private static final String LABEL = "label"; + + private static final String NAMESPACES = "$namespaces"; + // datatypes + private static final String FLOAT = "float"; + private static final String NULL = "null"; + private static final String BOOLEAN = "boolean"; + private static final String INT = "int"; + private static final String DOUBLE = "double"; + private static final String STRING = "string"; + private static final String FILE = "file"; + private static final String FORMAT = "format"; + private HashMap<String, PortDetail> processedInputs; private HashMap<String, PortDetail> processedOutputs; + private LinkedHashMap nameSpace; public HashMap<String, PortDetail> getProcessedInputs() { return processedInputs; @@ -59,12 +72,22 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon this.processedOutputs = processedOutputs; } + public void processNameSpace(Map cwlFile) { + + if (cwlFile.containsKey(NAMESPACES)) { + nameSpace = (LinkedHashMap) cwlFile.get(NAMESPACES); + } + + } + @Override public void configure(CwlActivityConfigurationBean configurationBean) throws ActivityConfigurationException { removeInputs(); removeOutputs(); Map cwlFile = configurationBean.getCwlConfigurations(); + processNameSpace(cwlFile); + if (cwlFile != null) { processedInputs = processInputs(cwlFile); @@ -97,6 +120,16 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon return process(cwlFile.get(INPUTS)); } + public boolean isValidDataType(ArrayList typeConfigurations) { + for (Object type : typeConfigurations) { + if (!(((String) type).equals(FLOAT) || ((String) type).equals(NULL)) || (((String) type).equals(BOOLEAN)) + || (((String) type).equals(INT) || (((String) type).equals(DOUBLE))) + || (((String) type).equals(STRING)) || (((String) type).equals(FILE))) + return false; + } + return true; + } + private HashMap<String, PortDetail> process(Object inputs) { HashMap<String, PortDetail> result = new HashMap<>(); @@ -108,18 +141,30 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon String currentInputId = (String) input.get(ID); Object typeConfigurations; - //get the parameter description + // get the parameter description if (input.containsKey(DESCRIPTION)) { detail.setDescription((String) input.get(DESCRIPTION)); } else { detail.setDescription(null); } - //get the parameter label + // get the parameter label if (input.containsKey(LABEL)) { detail.setLabel((String) input.get(LABEL)); } else { detail.setLabel(null); } + // getting the format info + if (input.containsKey(FORMAT)) { + + String format[] = input.get(FORMAT).toString().split(":"); + String namespaceKey = format[0]; + String urlAppednd = format[1]; + if (!nameSpace.isEmpty()) { + detail.setFormat(nameSpace.get(namespaceKey) + urlAppednd); + } else { + detail.setFormat(null); + } + } try { typeConfigurations = input.get(TYPE); @@ -135,6 +180,12 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon detail.setDepth(DEPTH_1); result.put(currentInputId, detail); } + } else if (typeConfigurations.getClass() == ArrayList.class) { + if (isValidDataType((ArrayList) typeConfigurations)) { + detail.setDepth(DEPTH_0); + result.put(currentInputId, detail); + } + } } catch (ClassCastException e) { http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2d28ba83/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java index 8899344..18ab918 100644 --- a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java +++ b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java @@ -23,6 +23,7 @@ public class PortDetail { private int depth; private String description; private String label; + private String format; public int getDepth() { return depth; } @@ -41,6 +42,12 @@ public class PortDetail { public void setLabel(String label) { this.label = label; } + public String getFormat() { + return format; + } + public void setFormat(String format) { + this.format = format; + } }
