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 --- .../java/com/c2kernel/utils/LocalObjectLoader.java | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/main/java/com/c2kernel/utils/LocalObjectLoader.java (limited to 'src/main/java/com/c2kernel/utils/LocalObjectLoader.java') diff --git a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java new file mode 100644 index 0000000..8a73e3c --- /dev/null +++ b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java @@ -0,0 +1,77 @@ +package com.c2kernel.utils; + +import com.c2kernel.common.InvalidDataException; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.entity.proxy.ItemProxy; +import com.c2kernel.lifecycle.ActivityDef; +import com.c2kernel.lookup.DomainPath; +import com.c2kernel.persistency.ClusterStorage; +import com.c2kernel.persistency.ClusterStorageException; +import com.c2kernel.persistency.outcome.Schema; +import com.c2kernel.persistency.outcome.Viewpoint; +import com.c2kernel.process.Gateway; + +public class LocalObjectLoader { + private static ActDefCache actCache = new ActDefCache(); + + static public ItemProxy loadLocalObjectDef(String root, String name) + throws ObjectNotFoundException + { + DomainPath defRoot = new DomainPath(root); + DomainPath defPath = (DomainPath)defRoot.find(name); + return (ItemProxy)Gateway.getProxyManager().getProxy(defPath); + } + + static public String getScript(String scriptName, String scriptVersion) throws ObjectNotFoundException { + Logger.msg(5, "Loading script "+scriptName+" v"+scriptVersion); + try { + ItemProxy script = loadLocalObjectDef("/desc/Script/", scriptName); + Viewpoint scriptView = (Viewpoint)script.getObject(ClusterStorage.VIEWPOINT + "/Script/" + scriptVersion); + return scriptView.getOutcome().getData(); + } catch (ClusterStorageException ex) { + Logger.error(ex); + throw new ObjectNotFoundException("Error loading script " + scriptName + " version " + scriptVersion, ""); + } + + } + + static public Schema getSchema(String schemaName, int schemaVersion) throws ObjectNotFoundException { + Logger.msg(5, "Loading schema "+schemaName+" v"+schemaVersion); + Schema thisSchema = new Schema(); + thisSchema.docType = schemaName; + thisSchema.docVersion = schemaVersion; + + // don't bother if this is the Schema schema - for bootstrap esp. + if (schemaName.equals("Schema") && schemaVersion == 0) { + thisSchema.breakApart = false; + thisSchema.schema=""; + return thisSchema; + } + + ItemProxy schema = loadLocalObjectDef("/desc/OutcomeDesc/", schemaName); + Viewpoint schemaView = (Viewpoint)schema.getObject(ClusterStorage.VIEWPOINT + "/Schema/" + schemaVersion); + try { + thisSchema.schema = schemaView.getOutcome().getData(); + } catch (ClusterStorageException ex) { + Logger.error(ex); + throw new ObjectNotFoundException("Problem loading schema "+schemaName+" v"+schemaVersion+": "+ex.getMessage(), ""); + } + String breakApart = schema.getProperty("BreakApart"); + thisSchema.breakApart = breakApart.equals("1"); + + return thisSchema; + } + + /** + * Retrieves a named version of activity def from the database + * + * @param actName - activity name + * @param version - named version (String) + * @return ActivityDef + * @throws ObjectNotFoundException - When activity or version does not exist + */ + static public ActivityDef getActDef(String actName, String actVersion) throws ObjectNotFoundException, InvalidDataException { + Logger.msg(5, "Loading activity def "+actName+" v"+actVersion); + return actCache.get(actName, actVersion); + } +} -- cgit v1.2.3