You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2012/01/18 20:30:38 UTC

svn commit: r1233012 - in /incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api: AiravataRegistry.java impl/AiravataJCRRegistry.java

Author: lahiru
Date: Wed Jan 18 19:30:37 2012
New Revision: 1233012

URL: http://svn.apache.org/viewvc?rev=1233012&view=rev
Log:
adding more methods to registry api to query using regexs rather giving exact names.

Modified:
    incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java
    incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java

Modified: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java?rev=1233012&r1=1233011&r2=1233012&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java (original)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java Wed Jan 18 19:30:37 2012
@@ -224,9 +224,15 @@ public interface AiravataRegistry extend
 
     public String getWorkflowStatus(String experimentId);
 
+    public Map<String,String> getWorkflowStatusWithRegex(String regex) throws RegistryException;
+
     public boolean saveWorkflowOutputData(String experimentId,String outputNodeName,String output) throws RegistryException;
 
     public String getWorkflowOutputData(String experimentId,String outputNodeName) throws RegistryException;
 
+    public Map<String,String> getWorkflowOutputDataWithRegix(String experimentIdRegex,String outputName)throws  RegistryException;
+
     public String[] getWorkflowOutputNames(String exeperimentId) throws RegistryException;
+
+    public Map<String,String[]> getWorkflowOutputNamesWithRegex(String experiementId) throws  RegistryException;
 }

Modified: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java?rev=1233012&r1=1233011&r2=1233012&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java (original)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java Wed Jan 18 19:30:37 2012
@@ -30,6 +30,8 @@ import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 import java.util.TimeZone;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
@@ -995,4 +997,74 @@ public class AiravataJCRRegistry extends
 		Node resultNode = getOrAddNode(workflowExperimentDataNode,RESULT);
 		return resultNode;
 	}
+    private List<String> getMatchingExperimentIds(String regex,Session session)throws RepositoryException{
+        Node orAddNode = getOrAddNode(session.getRootNode(), WORKFLOW_DATA);
+        List<String> matchList = new ArrayList<String>();
+        NodeIterator nodes = orAddNode.getNodes();
+        Pattern compile = Pattern.compile(regex);
+        while(nodes.hasNext()){
+            Node node = nodes.nextNode();
+            String name = node.getName();
+            if(compile.matcher(name).find()){
+                matchList.add(name);
+            }
+        }
+        return matchList;
+    }
+    public Map<String, String> getWorkflowStatusWithRegex(String regex) throws RegistryException {
+        Session session=null;
+        Map<String,String> workflowStatusMap = new HashMap<String, String>();
+        try {
+            session = getSession();
+            List<String> matchingExperimentIds = getMatchingExperimentIds(regex, session);
+            for(String experimentId:matchingExperimentIds){
+                String workflowStatus = getWorkflowStatus(experimentId);
+                workflowStatusMap.put(experimentId,workflowStatus);
+            }
+		} catch (RepositoryException e) {
+            e.printStackTrace();
+            throw new RegistryException(e);
+        }finally{
+            closeSession(session);
+        }
+        return workflowStatusMap;
+    }
+
+    public Map<String, String> getWorkflowOutputDataWithRegix(String regex, String outputName) throws RegistryException {
+        Session session=null;
+        Map<String,String> workflowStatusMap = new HashMap<String, String>();
+        try {
+            session = getSession();
+            List<String> matchingExperimentIds = getMatchingExperimentIds(regex, session);
+            for(String experimentId:matchingExperimentIds){
+                String workflowOutputData = getWorkflowOutputData(experimentId,outputName);
+                workflowStatusMap.put(experimentId,workflowOutputData);
+            }
+		} catch (RepositoryException e) {
+            e.printStackTrace();
+            throw new RegistryException(e);
+        }finally{
+            closeSession(session);
+        }
+        return workflowStatusMap;
+    }
+
+    public Map<String, String[]> getWorkflowOutputNamesWithRegex(String regex) throws RegistryException {
+        Session session = null;
+      Map<String,String[]> workflowStatusMap = new HashMap<String, String[]>();
+        try {
+            session = getSession();
+            List<String> matchingExperimentIds = getMatchingExperimentIds(regex, session);
+            for(String experimentId:matchingExperimentIds){
+                String[] workflowOutputData = getWorkflowOutputNames(experimentId);
+                workflowStatusMap.put(experimentId,workflowOutputData);
+            }
+		} catch (RepositoryException e) {
+            e.printStackTrace();
+            throw new RegistryException(e);
+        }finally{
+            closeSession(session);
+        }
+        return workflowStatusMap;
+    }
 }