Class ProcessTreeModifier
- java.lang.Object
-
- org.processmining.ptrframework.utils.ProcessTreeModifier
-
public class ProcessTreeModifier extends java.lang.ObjectModifier class for the PtR framework to separate candidates.
-
-
Constructor Summary
Constructors Constructor Description ProcessTreeModifier()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.processmining.processtree.ProcessTreeapply(org.processmining.processtree.ProcessTree tree)Applies the tree modification to the input tree returning a copy.booleancandidateCheck(org.processmining.processtree.Node node)Checks candidates whether they have a candidate property, i.e., if they are a flower or loop structure.voidcombineCandidates(org.processmining.processtree.ProcessTree tree)Combines all candidates identified before.voidcombineCandidatesOnOneLevel(org.processmining.processtree.ProcessTree tree, org.processmining.processtree.Block father, java.util.HashSet<org.processmining.processtree.Node> children)Sets a subset of children in parallel separating it from the remaining structure.static java.lang.StringgetIdentifierName()Gets the identifier label for the parallel father.voididentifyCandidates(org.processmining.processtree.Node node)Identifies all candidates according to the candidate check that occur with a shared parallel node as father.booleanidentifyFlower(org.processmining.processtree.Node node)Checks if a node is a flower structure.booleanidentifyLoop(org.processmining.processtree.Node node)Checks if a node is a loop structure.voidinit()(Re-)Sets the candidates being parallel for each father.voidstartIdentifyingCandidates(org.processmining.processtree.ProcessTree tree)Starting function for candidate identification.
-
-
-
Method Detail
-
getIdentifierName
public static java.lang.String getIdentifierName()
Gets the identifier label for the parallel father.- Returns:
- Identifier label of a parallel father.
-
apply
public org.processmining.processtree.ProcessTree apply(org.processmining.processtree.ProcessTree tree)
Applies the tree modification to the input tree returning a copy.- Parameters:
tree- The tree to be modified.- Returns:
- A tree where candidates are labeled and split.
-
init
public void init()
(Re-)Sets the candidates being parallel for each father.
-
combineCandidates
public void combineCandidates(org.processmining.processtree.ProcessTree tree)
Combines all candidates identified before.- Parameters:
tree- The tree on which candidates where identified before.
-
combineCandidatesOnOneLevel
public void combineCandidatesOnOneLevel(org.processmining.processtree.ProcessTree tree, org.processmining.processtree.Block father, java.util.HashSet<org.processmining.processtree.Node> children)Sets a subset of children in parallel separating it from the remaining structure.- Parameters:
tree- The tree to be modified.father- The old father.children- The children to be set in parallel with a new father.
-
startIdentifyingCandidates
public void startIdentifyingCandidates(org.processmining.processtree.ProcessTree tree)
Starting function for candidate identification.- Parameters:
tree- The tree to be checked.
-
identifyCandidates
public void identifyCandidates(org.processmining.processtree.Node node)
Identifies all candidates according to the candidate check that occur with a shared parallel node as father.- Parameters:
node- Node to recurse on.
-
candidateCheck
public boolean candidateCheck(org.processmining.processtree.Node node)
Checks candidates whether they have a candidate property, i.e., if they are a flower or loop structure.- Parameters:
node- Node to be checked.- Returns:
- If the node is a candidate.
-
identifyFlower
public boolean identifyFlower(org.processmining.processtree.Node node)
Checks if a node is a flower structure. Only recognizes structures such as x(τ, ⟲(a,τ)) for an activity.- Parameters:
node- Node to be checked, if it is a flower structure.- Returns:
- Whether the node is a flower structure.
-
identifyLoop
public boolean identifyLoop(org.processmining.processtree.Node node)
Checks if a node is a loop structure. Only recognizes structures such as ⟲(a,τ) for an activity.- Parameters:
node- Node to be checked, if it is a loop structure.- Returns:
- Whether the node is a loop structure.
-
-