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

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

Author: samindaw
Date: Fri Jan 20 22:19:31 2012
New Revision: 1234185

URL: http://svn.apache.org/viewvc?rev=1234185&view=rev
Log:
udpating the AiravataRegistry api to return executions based on user

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=1234185&r1=1234184&r2=1234185&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 Fri Jan 20 22:19:31 2012
@@ -241,5 +241,12 @@ public interface AiravataRegistry extend
     public String getWorkflowExecutionUser(String experimentId) throws RegistryException;
     
     public WorkflowExecution getWorkflowExection(String experimentId) throws RegistryException;
+    
+    public List<String> getWorkflowExecutionIdByUser(String user) throws RegistryException;
+
+    public List<WorkflowExecution> getWorkflowExecutionByUser(String user) throws RegistryException;
+    
+    public List<WorkflowExecution> getWorkflowExecutionByUser(String user, int pageSize, int pageNo) 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=1234185&r1=1234184&r2=1234185&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 Fri Jan 20 22:19:31 2012
@@ -850,7 +850,7 @@ public class AiravataJCRRegistry extends
         Session session = null;
         try {
             session = getSession();
-            Node experimentsNode = getOrAddNode(session.getRootNode(), WORKFLOW_DATA);
+            Node experimentsNode = getWorkflowDataNode(session);
             NodeIterator experimentNodes = experimentsNode.getNodes();
             for (; experimentNodes.hasNext();) {
                 Node experimentNode = experimentNodes.nextNode();
@@ -930,9 +930,14 @@ public class AiravataJCRRegistry extends
 
 	private Node getWorkflowExperimentDataNode(String experimentId,
 			Session session) throws RepositoryException {
-		return getOrAddNode(getOrAddNode(getOrAddNode(session.getRootNode(), WORKFLOW_DATA),
+		return getOrAddNode(getOrAddNode(getWorkflowDataNode(session),
 		                experimentId),experimentId);
 	}
+
+	private Node getWorkflowDataNode(Session session)
+			throws RepositoryException {
+		return getOrAddNode(session.getRootNode(), WORKFLOW_DATA);
+	}
     
 	public boolean saveWorkflowExecutionOutput(String experimentId,String outputNodeName,String output) throws RegistryException{
 		Session session=null;
@@ -1000,7 +1005,7 @@ public class AiravataJCRRegistry extends
 		return resultNode;
 	}
     private List<String> getMatchingExperimentIds(String regex,Session session)throws RepositoryException{
-        Node orAddNode = getOrAddNode(session.getRootNode(), WORKFLOW_DATA);
+        Node orAddNode = getWorkflowDataNode(session);
         List<String> matchList = new ArrayList<String>();
         NodeIterator nodes = orAddNode.getNodes();
         Pattern compile = Pattern.compile(regex);
@@ -1131,4 +1136,51 @@ public class AiravataJCRRegistry extends
 		}
 		return result;
 	}
+
+	public List<String> getWorkflowExecutionIdByUser(String user)
+			throws RegistryException {
+		Session session = null;
+		List<String> ids=new ArrayList<String>();
+		try {
+			session = getSession();
+			List<String> matchingExperimentIds = getMatchingExperimentIds(".*", session);
+			for (String id : matchingExperimentIds) {
+				if (user.equals(getWorkflowExecutionUser(id))){
+					ids.add(id);
+				}
+			}
+		} catch (RepositoryException e) {
+			throw new RegistryException("Error in retrieving Execution Ids for the user '"+user+"'",e);
+		}finally{
+			closeSession(session);
+		}
+		return ids;
+	}
+
+	public List<WorkflowExecution> getWorkflowExecutionByUser(String user)
+			throws RegistryException {
+		return getWorkflowExecution(user,-1,-1);
+	}
+
+	private List<WorkflowExecution> getWorkflowExecution(String user, int startLimit, int endLimit)
+			throws RegistryException {
+		List<WorkflowExecution> executions=new ArrayList<WorkflowExecution>();
+		List<String> workflowExecutionIdByUser = getWorkflowExecutionIdByUser(user);
+		int count=0;
+		for (String id : workflowExecutionIdByUser) {
+			if ((startLimit==-1 && endLimit==-1) ||
+				(startLimit==-1 && count<endLimit) ||
+				(startLimit<=count && endLimit==-1) ||
+				(startLimit<=count && count<endLimit)){
+				executions.add(getWorkflowExection(id));
+			}
+			count++;
+		}
+		return executions;
+	}
+
+	public List<WorkflowExecution> getWorkflowExecutionByUser(String user,
+			int pageSize, int pageNo) throws RegistryException {
+		return getWorkflowExecutionByUser(user,pageSize*pageNo,pageSize*(pageNo+1));
+	}
 }