public abstract class AbstractBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>> extends Object implements IBranchingProcess<BPN,C,E,F,N,P,T,M>
| Modifier and Type | Field and Description |
|---|---|
protected Map<BPN,Set<BPN>> |
ca |
protected Map<BPN,Set<BPN>> |
co |
protected Set<C> |
conds |
protected Set<E> |
events |
protected ICut<BPN,C,E,F,N,P,T,M> |
iniBP |
protected List<E> |
log |
protected INetSystem<F,N,P,T,M> |
sys |
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractBranchingProcess() |
protected |
AbstractBranchingProcess(INetSystem<F,N,P,T,M> sys) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
appendCondition(C condition)
Append condition to this branching process.
|
boolean |
appendEvent(E event)
Append event to this branching process.
|
boolean |
appendTransition(T transition)
Append a fresh event that corresponds to the given transition.
|
boolean |
areCausal(BPN n1,
BPN n2)
Check if two nodes of this branching process are in the causal relation.
|
boolean |
areConcurrent(BPN n1,
BPN n2)
Check if two nodes of this branching process are concurrent.
|
boolean |
areInConflict(BPN n1,
BPN n2)
Check if two nodes of this branching process are in conflict.
|
boolean |
areInverseCausal(BPN n1,
BPN n2)
Check if two nodes of this branching process are in the inverse causal relation.
|
boolean |
areMutuallyConcurrent(Collection<C> conditions) |
IBranchingProcess<BPN,C,E,F,N,P,T,M> |
clone() |
void |
constructInitialBranchingProcess()
Construct initial branching process (only if this branching process is empty).
|
C |
createCondition(P place,
E event)
Factory method to provide a condition of the branching process implementation.
|
ICoSet<BPN,C,E,F,N,P,T,M> |
createCoSet()
Factory method to provide a co-set of the branching process implementation.
|
ICut<BPN,C,E,F,N,P,T,M> |
createCut()
Factory method to provide a cut of the branching process implementation.
|
E |
createEvent(T transition,
ICoSet<BPN,C,E,F,N,P,T,M> preConditions)
Factory method to provide an event of the branching process implementation.
|
Set<BPN> |
getCausalPredecessors(BPN node)
Get causal predecessors of a given node of this branching process.
|
Set<C> |
getConditions()
Get conditions of this branching process.
|
Set<C> |
getConditions(P place)
Get conditions of this branching process that correspond to a given place in the originative net system.
|
Set<ICut<BPN,C,E,F,N,P,T,M>> |
getCuts(Collection<P> places)
Get cuts of this branching process that refer to the provided collection of places.
|
Set<E> |
getEvents()
Get events of this branching process.
|
Set<E> |
getEvents(T transition)
Get events of this branching process that correspond to a given transition in the originative net system.
|
ICut<BPN,C,E,F,N,P,T,M> |
getInitialCut()
Get initial cut of this branching process, i.e., the set of condition without input events.
|
List<E> |
getLog()
Get log of events which was used to construct this branching process.
|
Set<C> |
getMax()
Get maximum, i.e., conditions without output events, of this branching process.
|
Set<C> |
getMin()
Get minimum, i.e., conditions without input events, of this branching process.
|
IOccurrenceNet<BPN,C,E,F,N,P,T,M> |
getOccurrenceNet()
Get occurrence net.
|
OrderingRelationType |
getOrderingRelation(BPN n1,
BPN n2)
Get ordering relation between two nodes of this branching process.
|
INetSystem<F,N,P,T,M> |
getOriginativeNetSystem()
Get originative net system of this branching process.
|
Set<P> |
getPlaces(Collection<C> conditions)
Get places of the originative net system that are associated with the given conditions.
|
Set<T> |
getTransitions(Collection<E> events)
Get transitions of the originative net system that are associated with the given events.
|
protected void |
initialize() |
boolean |
isConflictFree()
Check if this branching process is conflict free.
|
boolean |
isCut(Collection<C> conditions)
Check if a given collection of conditions is a cut in this branching process.
|
boolean |
isSafe()
Check if this branching process is safe.
|
void |
setNetSystem(INetSystem<F,N,P,T,M> system)
Set net system of this branching process.
|
protected void |
updateCausalityCondition(C c) |
protected INetSystem<F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>> sys
protected ICut<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>> iniBP
protected void initialize()
public void constructInitialBranchingProcess()
IBranchingProcesspublic Set<C> getConditions()
IBranchingProcessgetConditions in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public Set<C> getConditions(P place)
IBranchingProcessgetConditions in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public Set<E> getEvents()
IBranchingProcesspublic Set<E> getEvents(T transition)
IBranchingProcessgetEvents in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public INetSystem<F,N,P,T,M> getOriginativeNetSystem()
IBranchingProcessgetOriginativeNetSystem in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public boolean areCausal(BPN n1, BPN n2)
IOrderingRelationsDescriptorpublic boolean areInverseCausal(BPN n1, BPN n2)
IOrderingRelationsDescriptorareInverseCausal in interface IOrderingRelationsDescriptor<BPN extends IBPNode<N>,N extends INode>n1 - Node of this branching process.n2 - Node of this branching process.public boolean areConcurrent(BPN n1, BPN n2)
IOrderingRelationsDescriptorareConcurrent in interface IOrderingRelationsDescriptor<BPN extends IBPNode<N>,N extends INode>n1 - Node of this branching process.n2 - Node of this branching process.public boolean areInConflict(BPN n1, BPN n2)
IOrderingRelationsDescriptorareInConflict in interface IOrderingRelationsDescriptor<BPN extends IBPNode<N>,N extends INode>n1 - Node of this branching process.n2 - Node of this branching process.public OrderingRelationType getOrderingRelation(BPN n1, BPN n2)
IOrderingRelationsDescriptorgetOrderingRelation in interface IOrderingRelationsDescriptor<BPN extends IBPNode<N>,N extends INode>n1 - Node of this branching process.n2 - Node of this branching process.OrderingRelationType.public C createCondition(P place, E event)
IBranchingProcesscreateCondition in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>place - A place.event - An event.public E createEvent(T transition, ICoSet<BPN,C,E,F,N,P,T,M> preConditions)
IBranchingProcesscreateEvent in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>transition - A transition.preConditions - The preset of 't'.public boolean appendCondition(C condition)
IBranchingProcessappendCondition in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>condition - Condition to append.protected void updateCausalityCondition(C c)
public boolean appendEvent(E event)
IBranchingProcessappendEvent in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public boolean appendTransition(T transition)
IBranchingProcessappendTransition in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>transition - Transition that a fresh event should refer to.public ICut<BPN,C,E,F,N,P,T,M> getInitialCut()
IBranchingProcessgetInitialCut in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public ICoSet<BPN,C,E,F,N,P,T,M> createCoSet()
IBranchingProcesspublic ICut<BPN,C,E,F,N,P,T,M> createCut()
IBranchingProcesspublic Set<BPN> getCausalPredecessors(BPN node)
IBranchingProcessgetCausalPredecessors in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>node - Node of this branching process.public boolean isConflictFree()
IBranchingProcessisConflictFree in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public void setNetSystem(INetSystem<F,N,P,T,M> system)
IBranchingProcesssetNetSystem in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>system - Net system to use as the originative system of this branching process.public boolean isSafe()
IBranchingProcessisSafe in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public Set<C> getMin()
IBranchingProcessgetMin in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public Set<C> getMax()
IBranchingProcessIBranchingProcess.isConflictFree()) branching process is a cut (maximal co-set of conditions)!getMax in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>public Set<P> getPlaces(Collection<C> conditions)
IBranchingProcessgetPlaces in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>conditions - Conditions of this branching process.public Set<T> getTransitions(Collection<E> events)
IBranchingProcessgetTransitions in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>events - Events of this branching process.public IOccurrenceNet<BPN,C,E,F,N,P,T,M> getOccurrenceNet()
IBranchingProcesspublic boolean isCut(Collection<C> conditions)
IBranchingProcessisCut in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>conditions - Collection of conditions.public boolean areMutuallyConcurrent(Collection<C> conditions)
public Set<ICut<BPN,C,E,F,N,P,T,M>> getCuts(Collection<P> places)
IBranchingProcessgetCuts in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>places - Collection of places of the originative net system.public List<E> getLog()
IBranchingProcessgetLog in interface IBranchingProcess<BPN extends IBPNode<N>,C extends ICondition<BPN,C,E,F,N,P,T,M>,E extends IEvent<BPN,C,E,F,N,P,T,M>,F extends IFlow<N>,N extends INode,P extends IPlace,T extends ITransition,M extends IMarking<F,N,P,T>>Copyright © 2017. All rights reserved.