airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From samin...@apache.org
Subject svn commit: r1515255 - in /airavata/trunk/modules: commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java
Date Mon, 19 Aug 2013 01:51:46 GMT
Author: samindaw
Date: Mon Aug 19 01:51:46 2013
New Revision: 1515255

URL: http://svn.apache.org/r1515255
Log:
array split for foreach using delimeter and consideration of using quotes

Modified:
    airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
    airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java

Modified: airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java?rev=1515255&r1=1515254&r2=1515255&view=diff
==============================================================================
--- airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
(original)
+++ airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
Mon Aug 19 01:51:46 2013
@@ -23,8 +23,41 @@ package org.apache.airavata.common.utils
 
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
 
 public class StringUtil {
+	
+	public static String[] getElementsFromString(String s) {
+		List<String> list=new ArrayList<String>();
+		String currentItem="";
+		String previousChar=null;
+		String delimeter=",";
+		String quote="\"";
+		boolean insideQuote=false;
+		for(int i=0;i<s.length();i++){
+			String c=s.substring(i,i+1);
+			if (c.equals(delimeter)){
+				if (!insideQuote) {
+					list.add(currentItem);
+					currentItem = "";
+				}else{
+					currentItem+=c;
+				}
+			}else if (c.equals(quote)){
+				if (insideQuote){
+					insideQuote=false;
+				}else{
+					insideQuote=true;
+				}
+			}else{
+				currentItem+=c;
+			}
+			previousChar=c;
+		}
+		list.add(currentItem);
+		return list.toArray(new String[]{});
+	}
 
     /**
      * Converts object to String without worrying about null check.

Modified: airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java?rev=1515255&r1=1515254&r2=1515255&view=diff
==============================================================================
--- airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java
(original)
+++ airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java
Mon Aug 19 01:51:46 2013
@@ -28,6 +28,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.airavata.common.utils.StringUtil;
 import org.apache.airavata.workflow.model.exceptions.WorkflowException;
 import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
 import org.apache.airavata.workflow.model.graph.DataPort;
@@ -81,14 +82,14 @@ public class InterpreterUtil {
             Node inputNode = inputPort.getFromNode();
             // if input node for for-each is WSNode
             if (inputNode instanceof InputNode) {
-                for (DataPort dataPort : forEachNode.getInputPorts()) {
-                    returnValForProvenance = InterpreterUtil.findInputFromPort(dataPort,
invokerMap);
+//                for (DataPort dataPort : forEachNode.getInputPorts()) {
+                    returnValForProvenance = InterpreterUtil.findInputFromPort(inputPort,
invokerMap);
                     if (null == returnValForProvenance) {
                         throw new WorkFlowInterpreterException("Unable to find input for
the node:" + forEachNode.getID());
                     }
-                    String[] vals = returnValForProvenance.toString().split(",");
+                    String[] vals = StringUtil.getElementsFromString(returnValForProvenance.toString());
                     listOfValues.addAll(Arrays.asList(vals));
-                }
+//                }
             } else {
                 Invoker workflowInvoker = invokerMap.get(inputNode);
                 if (workflowInvoker != null) {
@@ -253,7 +254,7 @@ public class InterpreterUtil {
                 if (null == returnValForProvenance) {
                     throw new WorkFlowInterpreterException("Unable to find input for the
node:" + forEachNode.getID());
                 }
-                String[] vals = returnValForProvenance.toString().split(",");
+                String[] vals = StringUtil.getElementsFromString(returnValForProvenance.toString());
                 inputNumbers[inputPorts.indexOf(forEachInputPort)] = vals.length;
             } else {
                 Invoker workflowInvoker = invokerMap.get(forEachInputNode);



Mime
View raw message