de.uka.ipd.sdq.pcm.seff
Interface BranchAction

All Superinterfaces:
AbstractAction, AbstractInternalControlFlowAction, Entity, Identifier, NamedElement
All Known Implementing Classes:
BranchActionImpl

public interface BranchAction
extends AbstractInternalControlFlowAction

A representation of the model object 'Branch Action'. The BranchAction splits the RDSEFF control flow with an XOR-semantic, meaning that the control flow continues on exactly one of its attached AbstractBranchTransitions. The RDSEFF supports two different kinds of branch transitions, GuardedBranchTransitions, and ProbabilisticBranchTransitions. RDSEFFs do not allow to use both kinds of transitions on a single BranchAction. Analysis or simulation tools must select exactly one transition based on the included guard or probability, before continuing at a BranchAction.

The following features are supported:

See Also:
SeffPackage.getBranchAction()

Field Summary
static String copyright
           
 
Method Summary
 boolean AllProbabilisticBranchProbabilitiesMustSumUpTo1(DiagnosticChain diagnostics, Map<Object,Object> context)
          if self.branches_Branch->forAll(oclIsTypeOf(ProbabilisticBranchTransition)) then self.branches_Branch->select(pbt|pbt.oclIsTypeOf(ProbabilisticBranchTransition))->collect(pbt|pbt.oclAsType(ProbabilisticBranchTransition).branchProbability)->sum() > 0.999 and self.branches_Branch->select(pbt|pbt.oclIsTypeOf(ProbabilisticBranchTransition))->collect(pbt|pbt.oclAsType(ProbabilisticBranchTransition).branchProbability)->sum() < 1.001 else true endif
 boolean EitherGuardedBranchesOrProbabilisiticBranchTransitions(DiagnosticChain diagnostics, Map<Object,Object> context)
          self.branches_Branch->forAll(bt|bt.oclIsTypeOf(ProbabilisticBranchTransition)) or self.branches_Branch->forAll(bt|bt.oclIsTypeOf(GuardedBranchTransition))
  getBranches_Branch()
          Returns the value of the 'Branches Branch' containment reference list.
 
Methods inherited from interface de.uka.ipd.sdq.pcm.seff.AbstractInternalControlFlowAction
getResourceDemand_Action
 
Methods inherited from interface de.uka.ipd.sdq.pcm.seff.AbstractAction
getPredecessor_AbstractAction, getSuccessor_AbstractAction, setPredecessor_AbstractAction, setSuccessor_AbstractAction
 
Methods inherited from interface de.uka.ipd.sdq.identifier.Identifier
getId, idHasToBeUnique, setId
 
Methods inherited from interface de.uka.ipd.sdq.pcm.core.entity.NamedElement
getEntityName, setEntityName
 

Field Detail

copyright

static final String copyright

See Also:
Constant Field Values
Method Detail

getBranches_Branch

 getBranches_Branch()
Returns the value of the 'Branches Branch' containment reference list. The list contents are of type AbstractBranchTransition.

If the meaning of the 'Branches Branch' containment reference list isn't clear, there really should be more of a description here...

Returns:
the value of the 'Branches Branch' containment reference list.
See Also:
SeffPackage.getBranchAction_Branches_Branch()

EitherGuardedBranchesOrProbabilisiticBranchTransitions

boolean EitherGuardedBranchesOrProbabilisiticBranchTransitions(DiagnosticChain diagnostics,
                                                               Map<Object,Object> context)
self.branches_Branch->forAll(bt|bt.oclIsTypeOf(ProbabilisticBranchTransition)) or self.branches_Branch->forAll(bt|bt.oclIsTypeOf(GuardedBranchTransition))

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.

AllProbabilisticBranchProbabilitiesMustSumUpTo1

boolean AllProbabilisticBranchProbabilitiesMustSumUpTo1(DiagnosticChain diagnostics,
                                                        Map<Object,Object> context)
if self.branches_Branch->forAll(oclIsTypeOf(ProbabilisticBranchTransition)) then self.branches_Branch->select(pbt|pbt.oclIsTypeOf(ProbabilisticBranchTransition))->collect(pbt|pbt.oclAsType(ProbabilisticBranchTransition).branchProbability)->sum() > 0.999 and self.branches_Branch->select(pbt|pbt.oclIsTypeOf(ProbabilisticBranchTransition))->collect(pbt|pbt.oclAsType(ProbabilisticBranchTransition).branchProbability)->sum() < 1.001 else true endif

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.