From b086f57f56bf0eb9dab9cf321a0f69aaaae84347 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 30 May 2012 08:37:45 +0200 Subject: Initial Maven Conversion --- .../routingHelpers/ViewpointDataHelper.java | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java (limited to 'src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java') 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 : /: + 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; + } + } +} -- cgit v1.2.3