xpdlobjectfactory.java

来自「jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用」· Java 代码 · 共 812 行 · 第 1/2 页

JAVA
812
字号
package org.enhydra.jawe.base.xpdlobjectfactory;import java.lang.reflect.Method;import java.util.HashSet;import org.enhydra.jawe.JaWEComponent;import org.enhydra.jawe.JaWEConstants;import org.enhydra.jawe.JaWEEAHandler;import org.enhydra.jawe.JaWEManager;import org.enhydra.jawe.ResourceManager;import org.enhydra.jawe.Utils;import org.enhydra.jawe.base.controller.JaWETypes;import org.enhydra.jawe.base.xpdlhandler.XPDLHandler;import org.enhydra.shark.xpdl.XMLCollection;import org.enhydra.shark.xpdl.XMLCollectionElement;import org.enhydra.shark.xpdl.XMLElement;import org.enhydra.shark.xpdl.XMLUtil;import org.enhydra.shark.xpdl.elements.Activities;import org.enhydra.shark.xpdl.elements.Activity;import org.enhydra.shark.xpdl.elements.ActivitySet;import org.enhydra.shark.xpdl.elements.ActivitySets;import org.enhydra.shark.xpdl.elements.ActualParameter;import org.enhydra.shark.xpdl.elements.ActualParameters;import org.enhydra.shark.xpdl.elements.Application;import org.enhydra.shark.xpdl.elements.Applications;import org.enhydra.shark.xpdl.elements.DataField;import org.enhydra.shark.xpdl.elements.DataFields;import org.enhydra.shark.xpdl.elements.Deadline;import org.enhydra.shark.xpdl.elements.Deadlines;import org.enhydra.shark.xpdl.elements.EnumerationType;import org.enhydra.shark.xpdl.elements.EnumerationValue;import org.enhydra.shark.xpdl.elements.ExtendedAttribute;import org.enhydra.shark.xpdl.elements.ExtendedAttributes;import org.enhydra.shark.xpdl.elements.ExternalPackage;import org.enhydra.shark.xpdl.elements.ExternalPackages;import org.enhydra.shark.xpdl.elements.FormalParameter;import org.enhydra.shark.xpdl.elements.FormalParameters;import org.enhydra.shark.xpdl.elements.Member;import org.enhydra.shark.xpdl.elements.Namespace;import org.enhydra.shark.xpdl.elements.Namespaces;import org.enhydra.shark.xpdl.elements.Package;import org.enhydra.shark.xpdl.elements.PackageHeader;import org.enhydra.shark.xpdl.elements.Participant;import org.enhydra.shark.xpdl.elements.Participants;import org.enhydra.shark.xpdl.elements.RecordType;import org.enhydra.shark.xpdl.elements.Responsible;import org.enhydra.shark.xpdl.elements.Responsibles;import org.enhydra.shark.xpdl.elements.Tool;import org.enhydra.shark.xpdl.elements.Tools;import org.enhydra.shark.xpdl.elements.Transition;import org.enhydra.shark.xpdl.elements.TransitionRef;import org.enhydra.shark.xpdl.elements.TransitionRefs;import org.enhydra.shark.xpdl.elements.TransitionRestriction;import org.enhydra.shark.xpdl.elements.TransitionRestrictions;import org.enhydra.shark.xpdl.elements.Transitions;import org.enhydra.shark.xpdl.elements.TypeDeclaration;import org.enhydra.shark.xpdl.elements.TypeDeclarations;import org.enhydra.shark.xpdl.elements.UnionType;import org.enhydra.shark.xpdl.elements.WorkflowProcess;import org.enhydra.shark.xpdl.elements.WorkflowProcesses;/** * Factory for generating XPDL objects. *  * @author Sasa Bojanic */public class XPDLObjectFactory {   protected XPDLObjectFactorySettings settings;   public XPDLObjectFactory() {      settings = new XPDLObjectFactorySettings();      settings.init((JaWEComponent) null);   }   public XPDLObjectFactory(XPDLObjectFactorySettings settings) {      this.settings = settings;      this.settings.init((JaWEComponent) null);   }   public Package createPackage(String type) {      Package pkg = new Package();      adjustType(pkg, type);      XPDLHandler xpdlhandler = JaWEManager.getInstance().getXPDLHandler();      JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(pkg, type);      }      String id = pkg.getId();      if (!hasTemplate || id.equals("") || xpdlhandler.getPackageById(id) != null) {         int i = 0;         while (id.equals("") || xpdlhandler.getPackageById(id) != null) {            id = "newpkg" + String.valueOf(++i);         }         pkg.setId(id);      }      if (!hasTemplate || pkg.getName().equals("")) {         pkg.setName(id);      }      PackageHeader ph = pkg.getPackageHeader();      if (!hasTemplate) {         ph.setXPDLVersion("1.0");         ph.setVendor("Together");      }      ph.setCreated(Utils.getCurrentDateAndTime());      Namespaces nss = pkg.getNamespaces();      Namespace ns = createXPDLObject(nss, "", true);      ns.setName("xpdl");      ns.setLocation("http://www.wfmc.org/2002/XPDL1.0");      adjustXPDLObject(pkg,type);      return pkg;   }   public ActivitySet createXPDLObject(ActivitySets ass,                                       String type,                                       boolean addToCollection) {      ActivitySet as = (ActivitySet) ass.generateNewElement();      JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      adjustType(as, type);      if (hasTemplate) {         jts.fillFromTemplate(as, type);      }      String id = as.getId();      if (!hasTemplate || id.equals("") || ass.getActivitySet(id) != null) {         if (id.equals("")) {            id = JaWEManager.getInstance().getIdFactory().generateUniqueId(ass);         } else {            id=JaWEManager.getInstance().getIdFactory().generateSimilarOrIdenticalUniqueId(ass,new HashSet(),id);         }         int i = 0;         while (ass.getActivitySet(id) != null) {            id = id + String.valueOf(++i);         }         as.setId(id);      }      adjustXPDLObject(as,type);      if (addToCollection) {         ass.add(as);      }      return as;   }   public Activity createXPDLObject(Activities acts, String type, boolean addToCollection) {      Activity act = null;      if (type == null || type.equals("")) {         type = JaWEConstants.ACTIVITY_TYPE_TOOL;      }      if (type.equals(JaWEConstants.ACTIVITY_TYPE_BLOCK)          || type.equals(JaWEConstants.ACTIVITY_TYPE_NO)          || type.equals(JaWEConstants.ACTIVITY_TYPE_ROUTE)          || type.equals(JaWEConstants.ACTIVITY_TYPE_SUBFLOW)          || type.equals(JaWEConstants.ACTIVITY_TYPE_TOOL)) {         act = createStandardActivity(acts, type);      } else {         act = createSpecialActivity(acts, type);      }      adjustXPDLObject(act,type);      if (addToCollection) {         acts.add(act);      }      return act;   }   protected Activity createStandardActivity(Activities acts, String type) {      Activity act = createXPDLActivity(acts,type);      if (type.equals(JaWEConstants.ACTIVITY_TYPE_BLOCK)) {         act.getActivityTypes().setBlockActivity();      } else if (type.equals(JaWEConstants.ACTIVITY_TYPE_ROUTE)) {         act.getActivityTypes().setRoute();      } else if (type.equals(JaWEConstants.ACTIVITY_TYPE_SUBFLOW)) {         act.getActivityTypes().setImplementation();         act.getActivityTypes().getImplementation().getImplementationTypes().setSubFlow();      } else if (type.equals(JaWEConstants.ACTIVITY_TYPE_TOOL)) {         act.getActivityTypes().setImplementation();         act.getActivityTypes().getImplementation().getImplementationTypes().setTools();      } else if (type.equals(JaWEConstants.ACTIVITY_TYPE_NO)) {         act.getActivityTypes().setImplementation();         act.getActivityTypes().getImplementation().getImplementationTypes().setNo();      }      return act;   }   protected Activity createSpecialActivity(Activities acts, String type) {      Activity act = createXPDLActivity(acts,type);      JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (!hasTemplate) {         act.getActivityTypes().getImplementation().getImplementationTypes().setTools();         act.getActivityTypes().setImplementation();         // JaWEEAHandler.setActivityType(act, type);      }      return act;   }   protected Activity createXPDLActivity(Activities acts,String type) {      Activity act = (Activity) acts.generateNewElement();      JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(act, type);      }      String id = act.getId();      if (!hasTemplate || id.equals("") || acts.getActivity(id) != null) {         if (id.equals("")) {            id=JaWEManager.getInstance().getIdFactory().generateUniqueId(acts);         } else {            id = JaWEManager.getInstance().getIdFactory().generateSimilarOrIdenticalUniqueId(acts,new HashSet(),id);         }         int i = 0;         while (acts.getActivity(id) != null) {            id = id + String.valueOf(++i);         }         act.setId(id);      }      return act;   }   public ActualParameter createXPDLObject(ActualParameters aps,                                           String type,                                           boolean addToCollection) {      ActualParameter ap = (ActualParameter) aps.generateNewElement();      adjustType(ap, type);            JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(ap, type);      }            adjustXPDLObject(ap,type);      if (addToCollection) {         aps.add(ap);      }      return ap;   }   public Application createXPDLObject(Applications apps,                                       String type,                                       boolean addToCollection) {      Application app = (Application) apps.generateNewElement();      adjustType(app, type);            JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(app, type);      }      String id = app.getId();      if (!hasTemplate || id.equals("") || apps.getApplication(id) != null) {         if (id.equals("")) {            id=JaWEManager.getInstance().getIdFactory().generateUniqueId(apps);         } else {            id = JaWEManager.getInstance().getIdFactory().generateSimilarOrIdenticalUniqueId(apps,new HashSet(),id);         }         int i = 0;         while (apps.getApplication(id) != null) {            id = id + String.valueOf(++i);         }         app.setId(id);      }      adjustXPDLObject(app,type);      if (addToCollection) {         apps.add(app);      }      return app;   }   public DataField createXPDLObject(DataFields dfs, String type, boolean addToCollection) {      DataField df = (DataField) dfs.generateNewElement();      adjustType(df, type);            JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(df, type);      }      String id = df.getId();      if (!hasTemplate || id.equals("") || dfs.getDataField(id) != null) {         if (id.equals("")) {            id=JaWEManager.getInstance().getIdFactory().generateUniqueId(dfs);         } else {            id = JaWEManager.getInstance().getIdFactory().generateSimilarOrIdenticalUniqueId(dfs,new HashSet(),id);         }         int i = 0;         while (dfs.getDataField(id) != null) {            id = id + String.valueOf(++i);         }         df.setId(id);      }            adjustXPDLObject(df,type);      if (addToCollection) {         dfs.add(df);      }      return df;   }   public Deadline createXPDLObject(Deadlines dls, String type, boolean addToCollection) {      Deadline dl = (Deadline) dls.generateNewElement();      adjustType(dl, type);      JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(dl, type);      }            adjustXPDLObject(dl,type);      if (addToCollection) {         dls.add(dl);      }      return dl;   }   public EnumerationValue createXPDLObject(EnumerationType et,                                            String type,                                            boolean addToCollection) {      EnumerationValue ev = (EnumerationValue) et.generateNewElement();      adjustType(ev, type);            JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(ev, type);      }            adjustXPDLObject(ev,type);      if (addToCollection) {         et.add(ev);      }      return ev;   }   public ExtendedAttribute createXPDLObject(ExtendedAttributes eas,                                             String type,                                             boolean addToCollection) {      ExtendedAttribute ea = (ExtendedAttribute) eas.generateNewElement();      adjustType(ea, type);            JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(ea, type);      }            adjustXPDLObject(ea,type);      if (addToCollection) {         eas.add(ea);      }      return ea;   }   public ExternalPackage createXPDLObject(ExternalPackages eps,                                           String type,                                           boolean addToCollection) {      ExternalPackage ep = (ExternalPackage) eps.generateNewElement();      adjustType(ep, type);            JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(ep, type);      }      adjustXPDLObject(ep,type);      if (addToCollection) {         eps.add(ep);      }      return ep;   }   public FormalParameter createXPDLObject(FormalParameters fps,                                           String type,                                           boolean addToCollection) {      FormalParameter fp = (FormalParameter) fps.generateNewElement();      adjustType(fp, type);            JaWETypes jts = JaWEManager.getInstance().getJaWEController().getJaWETypes();      boolean hasTemplate = jts.hasTemplateId(type);      if (hasTemplate) {         jts.fillFromTemplate(fp, type);      }      String id = fp.getId();      if (!hasTemplate || id.equals("") || fps.getFormalParameter(id) != null) {         if (id.equals("")) {            id=JaWEManager.getInstance().getIdFactory().generateUniqueId(fps);         } else {            id = JaWEManager.getInstance().getIdFactory().generateSimilarOrIdenticalUniqueId(fps,new HashSet(),id);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?