Revision: 186
Author:
uisurumad...@gmail.com
Date: Tue Aug 28 21:57:42 2012
Log: data product api added
http://code.google.com/a/apache-extras.org/p/metcat/source/detail?r=186
Modified:
/trunk/metcatserver/src/main/java/org/apache/airavata/metcat/api/MetCatAPI.java
=======================================
---
/trunk/metcatserver/src/main/java/org/apache/airavata/metcat/api/MetCatAPI.java
Thu Aug 23 17:55:36 2012
+++
/trunk/metcatserver/src/main/java/org/apache/airavata/metcat/api/MetCatAPI.java
Tue Aug 28 21:57:42 2012
@@ -41,6 +41,10 @@
ModelCreator.datamodelImpl);
private static WorkflowStatus wfStatus = new WorkflowStatus(
ModelCreator.datamodelImpl);
+ private static DataProductByWorkflow dpByWorkf = new
DataProductByWorkflow(ModelCreator.datamodelImpl);
+ private static DataProductChanged dpChanged = new
DataProductChanged(ModelCreator.datamodelImpl);
+ private static DataProductConsumed dpConsumed = new
DataProductConsumed(ModelCreator.datamodelImpl);
+
@SuppressWarnings("unused")
private static WorkflowIndex wfIndex = new WorkflowIndex(
ModelCreator.datamodelImpl);
@@ -259,7 +263,93 @@
}
return array.toString();
}
-
+
+ /**
+ * Gets a set of produced/changed data products associated with a given
workflow.
+ *
+ * @param workflowID workflow identification
+ * @return JSON Array String which contains JSON objects with values
DATAPRODUCT and TIMESTAMP
+ */
+ public String getChangedDataProductsForWorkflow(String workflowID) {
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ try {
+ map = dpByWorkf.getChangedDataProducts(workflowID);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ JSONArray array = new JSONArray();
+ JSONObject json;
+ for (String key : map.keySet()) {
+ try {
+ json = new JSONObject();
+ json.put("DATAPRODUCT", key);
+ json.put("TIMESTAMP", map.get(key));
+ array.put(json);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return array.toString();
+ }
+
+ /**
+ * Gets a set of consumed data products associated with a given workflow.
+ *
+ * @param workflowID workflow identification
+ * @return JSON Array String which contains JSON objects with values
DATAPRODUCT and TIMESTAMP
+ */
+ public String getConsumedDataProductsForWorkflow(String workflowID) {
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ try {
+ map = dpByWorkf.getConsumedDataProducts(workflowID);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ JSONArray array = new JSONArray();
+ JSONObject json;
+ for (String key : map.keySet()) {
+ try {
+ json = new JSONObject();
+ json.put("DATAPRODUCT", key);
+ json.put("TIMESTAMP", map.get(key));
+ array.put(json);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return array.toString();
+ }
+
+ /**
+ * Gets a set of workflows which has been consumed the given data product.
+ *
+ * @param dataProduct data product identification
+ * @return JSON Array String which contains JSON objects with values
WORKFLOWID and TIMESTAMP
+ */
+ public String getConsumedWorkflowsForDataProduct(String dataProduct) {
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ try {
+ map = dpConsumed.getAllWorkflowsConsumed(dataProduct);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ JSONArray array = new JSONArray();
+ JSONObject json;
+ String[] vals;
+ for (String key : map.keySet()) {
+ try {
+ json = new JSONObject();
+ vals = key.split("::");
+ json.put("WORKFLOWID", map.get(key));
+ json.put("TIMESTAMP", vals[0]);
+ array.put(json);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return array.toString();
+ }
+
/**
* Returns all Input data with its Node ID.
* @param workflowID