org.enhydra.shark.xpdl
Class XMLUtil

java.lang.Object
  extended by org.enhydra.shark.xpdl.XMLUtil

public class XMLUtil
extends java.lang.Object

Class with utilities to read/write XPDLs from/to XML.

Author:
Sasa Bojanic, Danijel Predarski

Field Summary
static java.util.Map basicTypesMap
           
static java.lang.String XMLNS
           
static java.lang.String XMLNS_XPDL
           
static java.lang.String XMLNS_XSI
           
static java.lang.String XSI_SCHEMA_LOCATION
           
 
Constructor Summary
XMLUtil()
           
 
Method Summary
static boolean canBeExpression(java.lang.String expr, java.util.Map allVars, boolean evaluateToString)
           
static Package clonePackage(Package pkg)
           
static Package clonePackageBySerialization(Package pkg)
           
static int cntIds(XMLCollection xmlCol, java.lang.String id)
           
static java.lang.String convertToSystemPath(java.lang.String path)
           
static java.lang.String createPath(java.lang.String basedir, java.lang.String relpath)
           
static java.lang.Object deserialize(byte[] array)
           
static ExtendedAttributes destringyfyExtendedAttributes(java.lang.String extAttribs)
           
static java.lang.String fileToString(java.lang.String fileName)
          Converts a file specified by the path, to the String.
static Application findApplication(XMLInterface xmlInterface, WorkflowProcess toBegin, java.lang.String id)
           
static Participant findParticipant(XMLInterface xmlInterface, Package toBegin, java.lang.String perf)
           
static Participant findParticipant(XMLInterface xmlInterface, WorkflowProcess toBegin, java.lang.String perf)
           
static WorkflowProcess findWorkflowProcess(XMLInterface xmlInterface, Package toBegin, java.lang.String wpId)
           
static Activity getActivity(XMLElement el)
           
static ActivitySet getActivitySet(XMLElement el)
           
static java.util.List getAllExternalPackageIds(XMLInterface xmli, Package pkg, java.util.Set alreadyGathered)
           
static java.util.Set getAllParents(XMLElement el)
           
static Application getApplication(XMLInterface xmlInterface, Package toBegin, java.lang.String id)
           
static java.util.Set getBlockActivities(XMLComplexElement wpOrAs, boolean recursivly)
          Returns the set of BlockActivity objects contained within given process or block activity.
static ActivitySet getBlockActivitySet(Activity blockAct)
           
static java.lang.String getCanonicalPath(java.lang.String path, boolean canBeDirectory)
           
static java.lang.String getCanonicalPath(java.lang.String relpath, java.lang.String basedir, boolean canBeDirectory)
           
static org.w3c.dom.Node getChildByName(org.w3c.dom.Node parent, java.lang.String childName)
           
static java.lang.String getChildNodesContent(org.w3c.dom.Node node)
           
static java.lang.String getChoosenType(DataTypes types, Package pkg)
           
static int getConformanceClassNo(java.lang.String conformanceClass)
          Returns predefined conformanceClass number.
static java.lang.String getContent(org.w3c.dom.Node node, boolean omitXMLDeclaration)
           
static java.lang.String getCurrentDateAndTime()
          Gets the current date and time string in ISO-8601 format.
static java.util.Set getEndingActivities(XMLCollectionElement procOrASDef)
           
static java.util.Set getExceptionalOutgoingTransitions(Activity act)
           
static java.util.Set getExceptionalOutgoingTransitions(Activity act, Transitions tras)
           
static java.lang.String getExtendedAttributesString(ExtendedAttributes eas)
           
static java.lang.String getExtendedAttributesString(org.w3c.dom.Node node)
           
static java.lang.String getExtendedAttributeValue(java.lang.String[][] extendedAttributes, java.lang.String extAttrName)
           
static java.lang.String getExternalPackageId(java.lang.String extPkgHref)
           
static int getFinishMode(Activity act)
           
static Activity getFromActivity(Transition t)
           
static java.lang.String getId(org.w3c.dom.Node node)
           
static java.lang.String getIdFromFile(java.lang.String xmlFile)
           
static java.util.List getImmediateExternalPackages(XMLInterface xmli, Package pkg)
           
static java.util.Set getIncomingTransitions(Activity act)
           
static java.util.Set getIncomingTransitions(Activity act, Transitions tras)
           
static java.lang.String getJavaType(XMLCollectionElement dfOrFP)
           
static Join getJoin(Activity act)
           
static java.lang.String getNameSpacePrefix(org.w3c.dom.Node node)
           
static java.util.Set getNonExceptionalOutgoingTransitions(Activity act)
           
static java.util.Set getNonExceptionalOutgoingTransitions(Activity act, Transitions tras)
           
static java.util.List getOrderedOutgoingTransitions(Activity fromActDef, java.util.Set outTransitions)
           
static java.util.Set getOutgoingTransitions(Activity act)
           
static java.util.Set getOutgoingTransitions(Activity act, Transitions tras)
           
static Package getPackage(XMLElement el)
           
static XMLElement getParentElement(java.lang.Class type, XMLElement el)
           
static XMLElement getParentElementByAssignableType(java.lang.Class assignableFrom, XMLElement el)
           
static Participant getParticipant(XMLElement el)
           
static org.enhydra.shark.utilities.SequencedHashMap getPossibleApplications(Package forPkg, XMLInterface xmlInterface)
           
static org.enhydra.shark.utilities.SequencedHashMap getPossibleApplications(WorkflowProcess forWP, XMLInterface xmlInterface)
           
static org.enhydra.shark.utilities.SequencedHashMap getPossibleDataFields(Package forPkg)
           
static org.enhydra.shark.utilities.SequencedHashMap getPossibleDataFields(WorkflowProcess forWP)
           
static org.enhydra.shark.utilities.SequencedHashMap getPossibleParticipants(Package forPkg, XMLInterface xmlInterface)
           
static org.enhydra.shark.utilities.SequencedHashMap getPossibleParticipants(WorkflowProcess forWP, XMLInterface xmlInterface)
           
static org.enhydra.shark.utilities.SequencedHashMap getPossibleSubflowProcesses(SubFlow sbflw, XMLInterface xmlInterface)
           
static org.enhydra.shark.utilities.SequencedHashMap getPossibleVariables(WorkflowProcess forWP)
           
static java.util.List getResponsibles(WorkflowProcess wp)
          Returns the list of responsibles for the process, and responsibles for whole package.
static java.lang.String getShortClassName(java.lang.String fullClassName)
           
static Split getSplit(Activity act)
           
static java.util.Set getSplitOrJoinActivities(java.util.Collection acts, int sOrJ)
          Returns the set of (XML) activities that have split or join.
static java.util.Set getStartingActivities(XMLCollectionElement procOrASDef)
           
static int getStartMode(Activity act)
           
static WorkflowProcess getSubflowProcess(XMLInterface xmlInterface, Activity sbflwAct)
           
static Activity getToActivity(Transition t)
           
static Transition getTransition(XMLElement el)
           
static java.util.List getUsingPositions(java.lang.String expr, java.lang.String dfOrFpId, java.util.Map allVars)
           
static WorkflowProcess getWorkflowProcess(XMLElement el)
           
static int howManyStringsWithinString(java.lang.String toSearch, java.lang.String toFind)
          Determines the number of string toFind within string toSearch.
static int indexOfXMLElementWithinList(java.util.List l, XMLElement el)
           
static boolean isANDTypeSplitOrJoin(Activity act, int sOrJ)
          Returns if given activity has AND type split or join.
static boolean isChildsParent(XMLElement parent, XMLElement mayBeChild)
           
static boolean isExceptionalTransition(Transition tra)
           
static boolean isIdValid(java.lang.String id)
          Checks if Id is valid NMTOKEN string.
static boolean isParentsChild(XMLElement parent, XMLElement el)
           
static boolean isSubflowSynchronous(Activity sbflwActivityDefinition)
           
static void main(java.lang.String[] args)
           
static java.io.OutputStream packageToStream(Package pkg, java.io.OutputStream os)
           
static org.w3c.dom.Node parseExtendedAttributeContent(java.lang.String toParse)
           
static org.w3c.dom.Node parseSchemaNode(java.lang.String toParse, boolean isFile)
           
static Package readFromFile(XMLInterface xmli, java.lang.String inputFile, boolean readExt)
           
static int removeXMLElementFromList(java.util.List l, XMLElement el)
           
static java.lang.String replaceBackslashesWithSlashes(java.lang.String repBS)
           
static byte[] serialize(java.lang.Object obj)
           
static java.lang.String stringifyExtendedAttributes(ExtendedAttributes extAttribs)
           
static void writeToFile(java.lang.String outputFile, Package pkg)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XMLNS

public static final java.lang.String XMLNS
See Also:
Constant Field Values

XMLNS_XPDL

public static final java.lang.String XMLNS_XPDL
See Also:
Constant Field Values

XMLNS_XSI

public static final java.lang.String XMLNS_XSI
See Also:
Constant Field Values

XSI_SCHEMA_LOCATION

public static final java.lang.String XSI_SCHEMA_LOCATION
See Also:
Constant Field Values

basicTypesMap

public static java.util.Map basicTypesMap
Constructor Detail

XMLUtil

public XMLUtil()
Method Detail

howManyStringsWithinString

public static int howManyStringsWithinString(java.lang.String toSearch,
                                             java.lang.String toFind)
Determines the number of string toFind within string toSearch.


getCanonicalPath

public static java.lang.String getCanonicalPath(java.lang.String relpath,
                                                java.lang.String basedir,
                                                boolean canBeDirectory)

getCanonicalPath

public static java.lang.String getCanonicalPath(java.lang.String path,
                                                boolean canBeDirectory)

getNameSpacePrefix

public static java.lang.String getNameSpacePrefix(org.w3c.dom.Node node)

getChildByName

public static org.w3c.dom.Node getChildByName(org.w3c.dom.Node parent,
                                              java.lang.String childName)

getId

public static java.lang.String getId(org.w3c.dom.Node node)

getIdFromFile

public static java.lang.String getIdFromFile(java.lang.String xmlFile)

getContent

public static java.lang.String getContent(org.w3c.dom.Node node,
                                          boolean omitXMLDeclaration)

getChildNodesContent

public static java.lang.String getChildNodesContent(org.w3c.dom.Node node)

getShortClassName

public static java.lang.String getShortClassName(java.lang.String fullClassName)

getExternalPackageId

public static java.lang.String getExternalPackageId(java.lang.String extPkgHref)

parseSchemaNode

public static org.w3c.dom.Node parseSchemaNode(java.lang.String toParse,
                                               boolean isFile)

stringifyExtendedAttributes

public static java.lang.String stringifyExtendedAttributes(ExtendedAttributes extAttribs)
                                                    throws java.lang.Exception
Throws:
java.lang.Exception

destringyfyExtendedAttributes

public static ExtendedAttributes destringyfyExtendedAttributes(java.lang.String extAttribs)
                                                        throws java.lang.Exception
Throws:
java.lang.Exception

parseExtendedAttributeContent

public static org.w3c.dom.Node parseExtendedAttributeContent(java.lang.String toParse)

getExtendedAttributeValue

public static java.lang.String getExtendedAttributeValue(java.lang.String[][] extendedAttributes,
                                                         java.lang.String extAttrName)

getJavaType

public static java.lang.String getJavaType(XMLCollectionElement dfOrFP)

getChoosenType

public static java.lang.String getChoosenType(DataTypes types,
                                              Package pkg)

getPackage

public static Package getPackage(XMLElement el)

getWorkflowProcess

public static WorkflowProcess getWorkflowProcess(XMLElement el)

getActivitySet

public static ActivitySet getActivitySet(XMLElement el)

getActivity

public static Activity getActivity(XMLElement el)

getTransition

public static Transition getTransition(XMLElement el)

getParticipant

public static Participant getParticipant(XMLElement el)

getParentElement

public static XMLElement getParentElement(java.lang.Class type,
                                          XMLElement el)

getParentElementByAssignableType

public static XMLElement getParentElementByAssignableType(java.lang.Class assignableFrom,
                                                          XMLElement el)

isParentsChild

public static boolean isParentsChild(XMLElement parent,
                                     XMLElement el)

isChildsParent

public static boolean isChildsParent(XMLElement parent,
                                     XMLElement mayBeChild)

getAllParents

public static java.util.Set getAllParents(XMLElement el)

findWorkflowProcess

public static WorkflowProcess findWorkflowProcess(XMLInterface xmlInterface,
                                                  Package toBegin,
                                                  java.lang.String wpId)

findParticipant

public static Participant findParticipant(XMLInterface xmlInterface,
                                          WorkflowProcess toBegin,
                                          java.lang.String perf)

findParticipant

public static Participant findParticipant(XMLInterface xmlInterface,
                                          Package toBegin,
                                          java.lang.String perf)

findApplication

public static Application findApplication(XMLInterface xmlInterface,
                                          WorkflowProcess toBegin,
                                          java.lang.String id)

getApplication

public static Application getApplication(XMLInterface xmlInterface,
                                         Package toBegin,
                                         java.lang.String id)

canBeExpression

public static boolean canBeExpression(java.lang.String expr,
                                      java.util.Map allVars,
                                      boolean evaluateToString)

getUsingPositions

public static java.util.List getUsingPositions(java.lang.String expr,
                                               java.lang.String dfOrFpId,
                                               java.util.Map allVars)

getJoin

public static Join getJoin(Activity act)

getSplit

public static Split getSplit(Activity act)

getOutgoingTransitions

public static java.util.Set getOutgoingTransitions(Activity act)

getOutgoingTransitions

public static java.util.Set getOutgoingTransitions(Activity act,
                                                   Transitions tras)

getExceptionalOutgoingTransitions

public static java.util.Set getExceptionalOutgoingTransitions(Activity act)

getExceptionalOutgoingTransitions

public static java.util.Set getExceptionalOutgoingTransitions(Activity act,
                                                              Transitions tras)

getNonExceptionalOutgoingTransitions

public static java.util.Set getNonExceptionalOutgoingTransitions(Activity act)

getNonExceptionalOutgoingTransitions

public static java.util.Set getNonExceptionalOutgoingTransitions(Activity act,
                                                                 Transitions tras)

getIncomingTransitions

public static java.util.Set getIncomingTransitions(Activity act)

getIncomingTransitions

public static java.util.Set getIncomingTransitions(Activity act,
                                                   Transitions tras)

isExceptionalTransition

public static boolean isExceptionalTransition(Transition tra)

getFromActivity

public static Activity getFromActivity(Transition t)

getToActivity

public static Activity getToActivity(Transition t)

isIdValid

public static boolean isIdValid(java.lang.String id)
Checks if Id is valid NMTOKEN string.


cntIds

public static int cntIds(XMLCollection xmlCol,
                         java.lang.String id)

getSubflowProcess

public static WorkflowProcess getSubflowProcess(XMLInterface xmlInterface,
                                                Activity sbflwAct)

getBlockActivitySet

public static ActivitySet getBlockActivitySet(Activity blockAct)

getAllExternalPackageIds

public static java.util.List getAllExternalPackageIds(XMLInterface xmli,
                                                      Package pkg,
                                                      java.util.Set alreadyGathered)

getImmediateExternalPackages

public static java.util.List getImmediateExternalPackages(XMLInterface xmli,
                                                          Package pkg)

getSplitOrJoinActivities

public static java.util.Set getSplitOrJoinActivities(java.util.Collection acts,
                                                     int sOrJ)
Returns the set of (XML) activities that have split or join.

Parameters:
acts - The activities graph objects that are checked if their XML object have split or join, depending on the second parameter.
sOrJ - if 0, activity is checked for split, otherwise it is checked for join

getBlockActivities

public static java.util.Set getBlockActivities(XMLComplexElement wpOrAs,
                                               boolean recursivly)
Returns the set of BlockActivity objects contained within given process or block activity. If the BlockActivity objects contains other BlockActivity objects, and the second parameter is set to true, these are also returned, and so on - which means that implementation is recursive.


getConformanceClassNo

public static int getConformanceClassNo(java.lang.String conformanceClass)
Returns predefined conformanceClass number.

Parameters:
conformanceClass - The conformance class we are looking for number
Returns:
0 if conformance class is NON_BLOCKED, 1 if conformance class is LOOP_BLOCKED, 2 if conformance class is FULL_BLOCKED, and -1 otherwise

fileToString

public static java.lang.String fileToString(java.lang.String fileName)
Converts a file specified by the path, to the String.


getCurrentDateAndTime

public static java.lang.String getCurrentDateAndTime()
Gets the current date and time string in ISO-8601 format.


replaceBackslashesWithSlashes

public static java.lang.String replaceBackslashesWithSlashes(java.lang.String repBS)

getExtendedAttributesString

public static java.lang.String getExtendedAttributesString(ExtendedAttributes eas)
                                                    throws java.lang.Exception
Throws:
java.lang.Exception

getExtendedAttributesString

public static java.lang.String getExtendedAttributesString(org.w3c.dom.Node node)

getStartingActivities

public static java.util.Set getStartingActivities(XMLCollectionElement procOrASDef)

getEndingActivities

public static java.util.Set getEndingActivities(XMLCollectionElement procOrASDef)

getResponsibles

public static java.util.List getResponsibles(WorkflowProcess wp)
Returns the list of responsibles for the process, and responsibles for whole package.


getPossibleParticipants

public static org.enhydra.shark.utilities.SequencedHashMap getPossibleParticipants(Package forPkg,
                                                                                   XMLInterface xmlInterface)

getPossibleParticipants

public static org.enhydra.shark.utilities.SequencedHashMap getPossibleParticipants(WorkflowProcess forWP,
                                                                                   XMLInterface xmlInterface)

getPossibleApplications

public static org.enhydra.shark.utilities.SequencedHashMap getPossibleApplications(Package forPkg,
                                                                                   XMLInterface xmlInterface)

getPossibleApplications

public static org.enhydra.shark.utilities.SequencedHashMap getPossibleApplications(WorkflowProcess forWP,
                                                                                   XMLInterface xmlInterface)

getPossibleDataFields

public static org.enhydra.shark.utilities.SequencedHashMap getPossibleDataFields(Package forPkg)

getPossibleDataFields

public static org.enhydra.shark.utilities.SequencedHashMap getPossibleDataFields(WorkflowProcess forWP)

getPossibleVariables

public static org.enhydra.shark.utilities.SequencedHashMap getPossibleVariables(WorkflowProcess forWP)

getPossibleSubflowProcesses

public static org.enhydra.shark.utilities.SequencedHashMap getPossibleSubflowProcesses(SubFlow sbflw,
                                                                                       XMLInterface xmlInterface)

isANDTypeSplitOrJoin

public static boolean isANDTypeSplitOrJoin(Activity act,
                                           int sOrJ)
Returns if given activity has AND type split or join.

Parameters:
act - The activity that is checked if it has a AND type split or join, depending on the second parameter.
sOrJ - if 0, activity is checked for AND type split, otherwise it is checked for AND type join
Returns:
true if given activity has AND type split or join

isSubflowSynchronous

public static boolean isSubflowSynchronous(Activity sbflwActivityDefinition)

getStartMode

public static int getStartMode(Activity act)

getFinishMode

public static int getFinishMode(Activity act)

removeXMLElementFromList

public static int removeXMLElementFromList(java.util.List l,
                                           XMLElement el)

indexOfXMLElementWithinList

public static int indexOfXMLElementWithinList(java.util.List l,
                                              XMLElement el)

packageToStream

public static java.io.OutputStream packageToStream(Package pkg,
                                                   java.io.OutputStream os)

getOrderedOutgoingTransitions

public static java.util.List getOrderedOutgoingTransitions(Activity fromActDef,
                                                           java.util.Set outTransitions)

createPath

public static java.lang.String createPath(java.lang.String basedir,
                                          java.lang.String relpath)

convertToSystemPath

public static java.lang.String convertToSystemPath(java.lang.String path)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Throwable
Throws:
java.lang.Throwable

readFromFile

public static Package readFromFile(XMLInterface xmli,
                                   java.lang.String inputFile,
                                   boolean readExt)
                            throws java.lang.Exception
Throws:
java.lang.Exception

writeToFile

public static void writeToFile(java.lang.String outputFile,
                               Package pkg)
                        throws java.lang.Exception
Throws:
java.lang.Exception

clonePackage

public static Package clonePackage(Package pkg)
                            throws java.lang.Exception
Throws:
java.lang.Exception

clonePackageBySerialization

public static Package clonePackageBySerialization(Package pkg)
                                           throws java.lang.Exception
Throws:
java.lang.Exception

serialize

public static byte[] serialize(java.lang.Object obj)
                        throws java.lang.Exception
Throws:
java.lang.Exception

deserialize

public static java.lang.Object deserialize(byte[] array)
                                    throws java.lang.Exception
Throws:
java.lang.Exception