package com.c2kernel.process.resource; import java.util.HashSet; import java.util.Set; import com.c2kernel.lookup.DomainPath; import com.c2kernel.persistency.outcome.Outcome; import com.c2kernel.process.Gateway; import com.c2kernel.property.PropertyDescriptionList; import com.c2kernel.utils.Resource; public class DefaultResourceImportHandler implements ResourceImportHandler { String resType; String schemaName; String typeRoot; DomainPath typeRootPath; String wfDef; PropertyDescriptionList props; public DefaultResourceImportHandler(String resType) throws Exception { this.resType = resType; if (resType.equals("CA")) { wfDef = "ManageCompositeActDef"; schemaName = "CompositeActivityDef"; typeRoot = "/desc/ActivityDesc"; } else if (resType.equals("EA")) { wfDef = "ManageElementaryActDef"; schemaName = "ElementaryActivityDef"; typeRoot = "/desc/ActivityDesc"; } else if (resType.equals("OD")) { wfDef = "ManageSchema"; schemaName = "Schema"; typeRoot = "/desc/OutcomeDesc"; } else if (resType.equals("SC")) { wfDef = "ManageScript"; schemaName = "Script"; typeRoot = "/desc/Script"; } else if (resType.equals("SM")) { wfDef = "ManageStateMachine"; schemaName = "StateMachine"; typeRoot = "/desc/StateMachine"; } else throw new Exception("Unknown bootstrap item type: "+resType); typeRootPath = new DomainPath(typeRoot); props = (PropertyDescriptionList)Gateway.getMarshaller().unmarshall(Resource.getTextResource(null, "boot/property/"+resType+"Prop.xml")); } @Override public DomainPath getTypeRoot() { return typeRootPath; } @Override public String getName() { return schemaName; } @Override public DomainPath getPath(String name, String ns) throws Exception { return new DomainPath(typeRoot+"/system/"+(ns==null?"kernel":ns)+'/'+name); } @Override public Set getResourceOutcomes(String name, String ns, String location, int version) throws Exception { HashSet retArr = new HashSet(); String data = Resource.getTextResource(ns, location); if (data == null) throw new Exception("No data found for "+schemaName+" "+name); Outcome resOutcome = new Outcome(0, data, schemaName, 0); retArr.add(resOutcome); return retArr; } @Override public PropertyDescriptionList getPropDesc() throws Exception { return props; } @Override public String getWorkflowName() throws Exception { return wfDef; } }