diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2012-05-30 08:37:45 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2012-05-30 08:37:45 +0200 |
| commit | b086f57f56bf0eb9dab9cf321a0f69aaaae84347 (patch) | |
| tree | 8e6e26e8b7eed6abad7a17b093bdbb55c5e6b1ba /src/main/java/com/c2kernel/lifecycle/routingHelpers | |
| parent | 22088ae8d2d5ff390518dbe1c4372325ffb3a647 (diff) | |
Initial Maven Conversion
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/routingHelpers')
| -rw-r--r-- | src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java b/src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java new file mode 100644 index 0000000..0258347 --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java @@ -0,0 +1,79 @@ +package com.c2kernel.lifecycle.routingHelpers;
+
+import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.entity.proxy.ItemProxy;
+import com.c2kernel.lookup.EntityPath;
+import com.c2kernel.persistency.ClusterStorage;
+import com.c2kernel.persistency.outcome.Outcome;
+import com.c2kernel.persistency.outcome.Viewpoint;
+import com.c2kernel.process.Gateway;
+import com.c2kernel.utils.XmlElementParser;
+
+/**
+ * @author XSeb74
+ *
+ * To change this generated comment edit the template variable "typecomment":
+ * Window>Preferences>Java>Templates.
+ * To enable and disable the creation of type comments go to
+ * Window>Preferences>Java>Code Generation.
+ */
+public class ViewpointDataHelper
+{
+ static Object[] errArr = { "" };
+ /**
+ * Method get.
+ * @param value
+ * @return String[]
+ * @throws Exception
+ */
+ /**@param value : EntityPath:ActivityPath:XPathInOutcome*/
+ public static Object [] get(String value) throws Exception
+ {
+ //Syntax of search : <EntityPath>/<ViewpointPath>:<XPathinOutcome>
+ String entityPath;
+ String viewpoint;
+ String xpath;
+ Object[] retArr;
+
+ // find syskey, viewname, xpath
+ int firstSlash = value.indexOf("/");
+ if (firstSlash > 0) {
+ entityPath = value.substring(0, firstSlash);
+ int startXPath = value.indexOf(":");
+ if (startXPath==-1) {
+ viewpoint = value.substring(firstSlash + 1);
+ xpath = null;
+ } else {
+ viewpoint = value.substring(firstSlash + 1, startXPath);
+ xpath = value.substring(startXPath+1);
+ }
+ }
+ else return errArr;
+
+ // find entity
+ EntityPath sourcePath;
+ try
+ {
+ sourcePath = new EntityPath(Integer.parseInt(entityPath));
+ } catch (Exception e) {
+ sourcePath = new EntityPath(entityPath);
+ }
+
+ try {
+ // load viewpoint
+ ItemProxy dataSource = (ItemProxy)Gateway.getProxyManager().getProxy(sourcePath);
+ Viewpoint view = (Viewpoint)dataSource.getObject(ClusterStorage.VIEWPOINT + "/" + viewpoint);
+ Outcome outcome = view.getOutcome();
+ if (xpath == null) {
+ retArr = new Object[1];
+ retArr[0] = outcome;
+ }
+ else
+ retArr = XmlElementParser.parse(outcome.getData(), xpath);
+ return retArr;
+
+ } catch (ObjectNotFoundException e) {
+ return errArr;
+ }
+ }
+}
|
