Class BpmnModel
- java.lang.Object
-
- org.tweetyproject.logics.bpm.syntax.BpmnModel
-
- All Implemented Interfaces:
java.lang.Iterable<BpmnNode>
,BeliefBase
,Graph<BpmnNode>
public class BpmnModel extends java.lang.Object implements Graph<BpmnNode>, BeliefBase
A class to represent a BPMN Model- Author:
- Benedikt Knopp
-
-
Field Summary
-
Fields inherited from interface org.tweetyproject.graphs.Graph
IGNORE_SELFLOOPS, INVERT_SELFLOOPS, REMOVE_SELFLOOPS
-
-
Constructor Summary
Constructors Constructor Description BpmnModel()
-
Method Summary
Modifier and Type Method Description boolean
add(Edge<BpmnNode> edge)
Adds the given edge to this graph.boolean
add(BpmnNode node)
Adds the given node to this graph.boolean
add(Process process)
boolean
areAdjacent(BpmnNode a, BpmnNode b)
Returns "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.boolean
contains(java.lang.Object obj)
Returns "true" when this graph contains the given node or edge.boolean
existsDirectedPath(BpmnNode node1, BpmnNode node2)
Checks whether there is a (directed) path from node1 to node2.java.util.Set<Activity>
getActivities()
retrieve all nodes in this BPMN model that are ActivitiesMatrix
getAdjacencyMatrix()
Returns the adjacency matrix of this graph (the order of the nodes is the same as returned by "iterator()").java.util.Collection<BpmnNode>
getChildren(Node node)
Returns the set of children (node connected via an undirected edge or a directed edge where the given node is the parent) of the given node.Graph<BpmnNode>
getComplementGraph(int selfloops)
Returns the complement graph of this graph, i.e.Edge<BpmnNode>
getEdge(BpmnNode a, BpmnNode b)
Returns the corresponding edge (a,b) if a and b are adjacent.java.util.Set<Edge<BpmnNode>>
getEdges()
Returns the edges of this graph.Signature
getMinimalSignature()
Returns the signature of the language of this knowledge base.java.util.Collection<BpmnNode>
getNeighbors(BpmnNode node)
Returns the set of neighbors of the given node.java.util.Set<BpmnNode>
getNodes()
Returns the nodes of this graph.java.util.Set<BpmnNode>
getNodesOfType(java.lang.Class<?> c)
Retrieve all nodes in this model that are instances of a certain classint
getNumberOfNodes()
Returns the number of nodes in this graph.java.util.Collection<BpmnNode>
getParents(Node node)
Returns the set of parents (node connected via an undirected edge or a directed edge where the given node is the child) of the given node.Graph<BpmnNode>
getRestriction(java.util.Collection<BpmnNode> nodes)
Returns copy of this graph consisting only of the given nodes and all corresponding edges.java.util.Set<SequenceFlow>
getSequenceFlows()
retrieve all edges in this BPMN model that are Sequence Flowsjava.util.Set<BpmnNode>
getSequenceFlowSuccessors(BpmnNode node)
For one particular nodes, retrieve all successors in the sequence flow of the BPMN modeljava.util.Collection<java.util.Collection<BpmnNode>>
getStronglyConnectedComponents()
Returns the strongly connected components of this graph.java.util.Collection<Graph<BpmnNode>>
getSubgraphs()
Returns the set of sub graphs of this graph.boolean
hasSelfLoops()
Returns "true" iff the graph has a self loop (an edge from a node to itself).boolean
isWeightedGraph()
Checks whether this graph only contains weighted edges.java.util.Iterator<BpmnNode>
iterator()
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.tweetyproject.commons.BeliefBase
toString
-
-
-
-
Method Detail
-
getMinimalSignature
public Signature getMinimalSignature()
Description copied from interface:BeliefBase
Returns the signature of the language of this knowledge base.- Specified by:
getMinimalSignature
in interfaceBeliefBase
- Returns:
- the signature of the language of this knowledge base.
-
add
public boolean add(BpmnNode node)
Description copied from interface:Graph
Adds the given node to this graph.
-
add
public boolean add(Edge<BpmnNode> edge)
Description copied from interface:Graph
Adds the given edge to this graph. If at least one of the nodes the given edge connects is not in the graph, an illegal argument exception is thrown.
-
add
public boolean add(Process process)
-
getNodes
public java.util.Set<BpmnNode> getNodes()
Description copied from interface:Graph
Returns the nodes of this graph.
-
getNumberOfNodes
public int getNumberOfNodes()
Description copied from interface:Graph
Returns the number of nodes in this graph.- Specified by:
getNumberOfNodes
in interfaceGraph<BpmnNode>
- Returns:
- the number of nodes in this graph.
-
areAdjacent
public boolean areAdjacent(BpmnNode a, BpmnNode b)
Description copied from interface:Graph
Returns "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.- Specified by:
areAdjacent
in interfaceGraph<BpmnNode>
- Parameters:
a
- some nodeb
- some node- Returns:
- "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.
-
getEdge
public Edge<BpmnNode> getEdge(BpmnNode a, BpmnNode b)
Description copied from interface:Graph
Returns the corresponding edge (a,b) if a and b are adjacent. Otherwise it returns null.
-
getEdges
public java.util.Set<Edge<BpmnNode>> getEdges()
Description copied from interface:Graph
Returns the edges of this graph.
-
iterator
public java.util.Iterator<BpmnNode> iterator()
-
contains
public boolean contains(java.lang.Object obj)
Description copied from interface:Graph
Returns "true" when this graph contains the given node or edge.
-
getChildren
public java.util.Collection<BpmnNode> getChildren(Node node)
Description copied from interface:Graph
Returns the set of children (node connected via an undirected edge or a directed edge where the given node is the parent) of the given node.- Specified by:
getChildren
in interfaceGraph<BpmnNode>
- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of children of the given node.
-
getParents
public java.util.Collection<BpmnNode> getParents(Node node)
Description copied from interface:Graph
Returns the set of parents (node connected via an undirected edge or a directed edge where the given node is the child) of the given node.- Specified by:
getParents
in interfaceGraph<BpmnNode>
- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of parents of the given node.
-
existsDirectedPath
public boolean existsDirectedPath(BpmnNode node1, BpmnNode node2)
Description copied from interface:Graph
Checks whether there is a (directed) path from node1 to node2.- Specified by:
existsDirectedPath
in interfaceGraph<BpmnNode>
- Parameters:
node1
- some node.node2
- some node.- Returns:
- "true" if there is a directed path from node1 to node2.
-
getNeighbors
public java.util.Collection<BpmnNode> getNeighbors(BpmnNode node)
Description copied from interface:Graph
Returns the set of neighbors of the given node.- Specified by:
getNeighbors
in interfaceGraph<BpmnNode>
- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of neighbors of the given node.
-
getAdjacencyMatrix
public Matrix getAdjacencyMatrix()
Description copied from interface:Graph
Returns the adjacency matrix of this graph (the order of the nodes is the same as returned by "iterator()").- Specified by:
getAdjacencyMatrix
in interfaceGraph<BpmnNode>
- Returns:
- the adjacency matrix of this graph
-
getComplementGraph
public Graph<BpmnNode> getComplementGraph(int selfloops)
Description copied from interface:Graph
Returns the complement graph of this graph, i.e. the graph on the same set of vertices as this graph that connects two vertices v and w with an edge if and only if v and w are not connected in this graph.- Specified by:
getComplementGraph
in interfaceGraph<BpmnNode>
- Parameters:
selfloops
- Indicates how to deal with selfloops:
IGNORE_SELFLOOPS - ignore self loops (don't add and don't remove)
INVERT_SELFLOOPS - deal with self loops like ordinary edges (add if not present and remove if present)
REMOVE_SELFLOOPS - simple remove self loops, but don't add new ones.- Returns:
- the complement graph of this graph.
-
getStronglyConnectedComponents
public java.util.Collection<java.util.Collection<BpmnNode>> getStronglyConnectedComponents()
Description copied from interface:Graph
Returns the strongly connected components of this graph. A set of nodes is strongly connected, if there is a path from each node to each other. A set of nodes is called strongly connected component if it is strongly connected and maximal with respect to set inclusion.- Specified by:
getStronglyConnectedComponents
in interfaceGraph<BpmnNode>
- Returns:
- the strongly connected components of this graph.
-
getSubgraphs
public java.util.Collection<Graph<BpmnNode>> getSubgraphs()
Description copied from interface:Graph
Returns the set of sub graphs of this graph.- Specified by:
getSubgraphs
in interfaceGraph<BpmnNode>
- Returns:
- the set of sub graphs of this graph.
-
getRestriction
public Graph<BpmnNode> getRestriction(java.util.Collection<BpmnNode> nodes)
Description copied from interface:Graph
Returns copy of this graph consisting only of the given nodes and all corresponding edges.- Specified by:
getRestriction
in interfaceGraph<BpmnNode>
- Parameters:
nodes
- a set of nodes- Returns:
- a graph.
-
hasSelfLoops
public boolean hasSelfLoops()
Description copied from interface:Graph
Returns "true" iff the graph has a self loop (an edge from a node to itself).- Specified by:
hasSelfLoops
in interfaceGraph<BpmnNode>
- Returns:
- "true" iff the graph has a self loop (an edge from a node to itself).
-
isWeightedGraph
public boolean isWeightedGraph()
Description copied from interface:Graph
Checks whether this graph only contains weighted edges.- Specified by:
isWeightedGraph
in interfaceGraph<BpmnNode>
- Returns:
- "true" if all edges are weighted in this graph.
-
getActivities
public java.util.Set<Activity> getActivities()
retrieve all nodes in this BPMN model that are Activities- Returns:
- the model's Activities
-
getSequenceFlows
public java.util.Set<SequenceFlow> getSequenceFlows()
retrieve all edges in this BPMN model that are Sequence Flows- Returns:
- the model's Sequence Flows
-
getNodesOfType
public java.util.Set<BpmnNode> getNodesOfType(java.lang.Class<?> c)
Retrieve all nodes in this model that are instances of a certain class- Parameters:
c
- the class of interest- Returns:
- the nodes that are instances of class c
-
-