📄 package.java
字号:
package org.enhydra.shark.xpdl.elements;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import org.enhydra.shark.utilities.SequencedHashMap;import org.enhydra.shark.xpdl.XMLAttribute;import org.enhydra.shark.xpdl.XMLComplexElement;import org.enhydra.shark.xpdl.XMLElement;import org.enhydra.shark.xpdl.XMLElementChangeInfo;/** * Represents coresponding element from XPDL schema. * * @author Sasa Bojanic */public class Package extends XMLComplexElement { protected Namespaces namespaces; protected String internalVersion; protected boolean isTransient; protected SequencedHashMap extPkgRefsToIds=new SequencedHashMap();//transient static int pkgno=0;//transient int pno;//transient static ArrayList createdPKGs=new ArrayList();//transient static ArrayList destroyedPKGs=new ArrayList(); public Package () { super(null, true);// pno=++pkgno;// System.err.println("PKG "+(pno)+" created, hc="+hashCode());// createdPKGs.add(new Integer(pno)); namespaces=new Namespaces(this); internalVersion="-1"; isTransient=false; } public void makeAs (XMLElement el) { super.makeAs(el); this.namespaces.makeAs(((Package)el).namespaces); extPkgRefsToIds=new SequencedHashMap(((Package)el).extPkgRefsToIds); this.isTransient=((Package)el).isTransient; } protected void fillStructure () { XMLAttribute attrId=new XMLAttribute(this,"Id", true); // required XMLAttribute attrName=new XMLAttribute(this,"Name", false); PackageHeader refPackageHeader=new PackageHeader(this); RedefinableHeader refRedefinableHeader=new RedefinableHeader(this); // min=0 ConformanceClass refConformanceClass=new ConformanceClass(this); // min=0 Script refScript=new Script (this); // min=0 ExternalPackages refExternalPackages=new ExternalPackages(this); // min=0 TypeDeclarations refTypeDeclarations=new TypeDeclarations(this); // min=0 Participants refParticipants=new Participants(this); Applications refApplications=new Applications(this); // min=0 DataFields refDataFields=new DataFields(this); // min=0 WorkflowProcesses refWorkflowProcesses=new WorkflowProcesses(this); // min=0 ExtendedAttributes refExtendedAttributes=new ExtendedAttributes(this); add(attrId); add(attrName); add(refPackageHeader); add(refRedefinableHeader); add(refConformanceClass); add(refScript); add(refExternalPackages); add(refTypeDeclarations); add(refParticipants); add(refApplications); add(refDataFields); add(refWorkflowProcesses); add(refExtendedAttributes); } public boolean isTransient () { return isTransient; } public void setTransient (boolean trans) { this.isTransient=trans; } public String getInternalVersion () { return internalVersion; } public void setInternalVersion (String internalVersion) { this.internalVersion=internalVersion; } public void addExternalPackageMapping (String epRef,String epId) { extPkgRefsToIds.put(epRef,epId); } public void removeExternalPackageMapping (String epRef) { extPkgRefsToIds.remove(epRef); } public String getExternalPackageId (String epRef) { return (String)extPkgRefsToIds.get(epRef); } public Collection getExternalPackageIds () { return new ArrayList(extPkgRefsToIds.values()); } public ExternalPackage getExternalPackage (String id) { ExternalPackage toRet=null; Iterator it=getExternalPackages().toElements().iterator(); while (it.hasNext()) { ExternalPackage ep=(ExternalPackage)it.next(); String href=ep.getHref(); String epId=getExternalPackageId(href); if (epId!=null && epId.equals(id)) { toRet=ep; break; } } return toRet; } public WorkflowProcess getWorkflowProcess(String Id) { return getWorkflowProcesses().getWorkflowProcess(Id); } public Application getApplication (String Id) { return getApplications().getApplication(Id); } public Participant getParticipant(String Id) { return getParticipants().getParticipant(Id); } public DataField getDataField (String Id) { return getDataFields().getDataField(Id); } public TypeDeclaration getTypeDeclaration (String Id) { return getTypeDeclarations().getTypeDeclaration(Id); } public String getId() { return get("Id").toValue(); } public void setId(String id) { set("Id",id); } public String getName() { return get("Name").toValue(); } public void setName(String name) { set("Name",name); } public Applications getApplications() { return (Applications)get("Applications"); } public ConformanceClass getConformanceClass() { return (ConformanceClass)get("ConformanceClass"); } public DataFields getDataFields() { return (DataFields)get("DataFields"); } public ExtendedAttributes getExtendedAttributes() { return (ExtendedAttributes)get("ExtendedAttributes"); } public ExternalPackages getExternalPackages() { return (ExternalPackages)get("ExternalPackages"); } public PackageHeader getPackageHeader() { return (PackageHeader)get("PackageHeader"); } public Participants getParticipants() { return (Participants)get("Participants"); } public RedefinableHeader getRedefinableHeader() { return (RedefinableHeader)get("RedefinableHeader"); } public Script getScript() { return (Script)get("Script"); } public TypeDeclarations getTypeDeclarations() { return (TypeDeclarations)get("TypeDeclarations"); } public WorkflowProcesses getWorkflowProcesses() { return (WorkflowProcesses)get("WorkflowProcesses"); } public Namespaces getNamespaces() { return namespaces; } public void setNotifyMainListeners (boolean notify) { super.setNotifyMainListeners(notify); namespaces.setNotifyMainListeners(notify); } public void setReadOnly (boolean ro) { super.setReadOnly(ro); namespaces.setReadOnly(ro); } public Object clone () {// System.out.println("Cloning package "+this.hashCode()+", listeners="+listeners); Package d=(Package)super.clone();// System.out.println("cloned pkg="+d.hashCode()+", list="+listeners); d.namespaces=(Namespaces)this.namespaces.clone(); d.namespaces.setParent(d); d.extPkgRefsToIds=new SequencedHashMap(extPkgRefsToIds); d.isTransient=isTransient; d.clearCaches(); if (d.isReadOnly) d.initCaches(); return d; } public boolean equals (Object e) { boolean equals=super.equals(e); if (equals) { Package el=(Package)e; equals=(this.namespaces.equals(el.namespaces) && this.internalVersion.equals(el.internalVersion));// System.out.println("Package's ns or int ver equal - "+equals); } return equals; } protected boolean isMainElement () { return true; } protected void notifyMainListeners (XMLElementChangeInfo info) { if (parent==null) return; super.notifyMainListeners(info); }// public void finalize () throws Throwable {// super.finalize();// destroyedPKGs.add(new Integer(pno));// System.err.println("PKG "+(pno)+" destroyed, hc="+hashCode());// } public static void dbg () { System.gc();// System.err.println("Created pkgs: "+createdPKGs);// System.err.println("Destroyed pkgs: "+destroyedPKGs);// ArrayList inMem=new ArrayList(createdPKGs);// inMem.removeAll(destroyedPKGs);// System.err.println("Packages in memory: "+inMem); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -