public class GaddModel extends Model
The model is control flow graph CfgModel
model
that is stored in the form of the guarded actions decision diagram.
It means that internal model is an acyclic graph, each path of here contains a
continuous sub-sequence of switch/case nodes (may be empty) and after that -
a continuous sub-sequence of concurrent (non-blocking) basic blocks.
The basic block sequence is called "action", the switch/case sequence is called "guard".
Modifier and Type | Field and Description |
---|---|
static EntityType |
TYPE
The entity type.
|
Constructor and Description |
---|
GaddModel(CfgModel model,
java.util.Map<ModuleProcess,edu.uci.ics.jung.graph.Graph<Phase,PhaseSeqEdge>> map)
Constructs an object with the specified parameters.
|
Modifier and Type | Method and Description |
---|---|
void |
add(Entity entity)
Adds the specified entity.
|
void |
addClock(java.lang.String name,
ru.ispras.fortress.expression.NodeVariable clock)
Associate clock-like variable with the name-specified module.
|
ru.ispras.fortress.expression.NodeVariable |
getClock(java.lang.String name)
Returns the clock-like variable that is associated with module that has the specified name.
|
CfgModel |
getModel()
Returns the internal
CfgModel model. |
java.util.Map<ModuleProcess,edu.uci.ics.jung.graph.Graph<Phase,PhaseSeqEdge>> |
getProcessPhaseMap()
Returns the mapping from model processes to their phase sequence graphs.
|
boolean |
hasClock(java.lang.String name)
Checks whether the specified process has an associated clock-like variable.
|
addModule, addModules, getModules
equals, getEntityType, hashCode, toString
addMetaInfo, addMetaInfo, addMetaInfo, addMetaInfo, getAllMetaInfo, getMetaInfo, getMetaInfo, getStringMetaInfo, getStringMetaInfo, hasMetaInfo, hasMetaInfo
public static final EntityType TYPE
public GaddModel(CfgModel model, java.util.Map<ModuleProcess,edu.uci.ics.jung.graph.Graph<Phase,PhaseSeqEdge>> map)
model
- The internal model.map
- The mapping from processes to related phase graphs.java.lang.IllegalArgumentException
- when argument is null
.public void add(Entity entity)
add
in class Model
entity
- the entity to be addedjava.lang.IllegalArgumentException
- when argument is null
.RetrascopeException
- when argument is not of GaddModel
type.public java.util.Map<ModuleProcess,edu.uci.ics.jung.graph.Graph<Phase,PhaseSeqEdge>> getProcessPhaseMap()
public void addClock(java.lang.String name, ru.ispras.fortress.expression.NodeVariable clock)
name
- The name of the module.clock
- The clock-like variable.public boolean hasClock(java.lang.String name)
name
- The name of the module.true
when the model contains a clock-like variable that is associated
with the process, false
otherwise.public ru.ispras.fortress.expression.NodeVariable getClock(java.lang.String name)
name
- The name of the module.