public class Action extends java.lang.Object implements AssignmentContainer, UseDef
Assignment
statements.
When non-concurrent, statements MUST be executed in the same order as they are presented in this class. When concurrent, statements are executed in a "parallel" mode.
Constructor and Description |
---|
Action(Assignment assignment)
Constructs non-concurrent object with the specified assignment.
|
Action(Assignment assignment,
boolean isConcurrent)
Constructs object with the specified assignment.
|
Action(java.util.List<Assignment> list)
Constructs non-concurrent object with the specified collection of assignments.
|
Action(java.util.List<Assignment> list,
boolean isConcurrent)
Constructs object with the specified list of assignments of the specified concurrency mode.
|
Modifier and Type | Method and Description |
---|---|
void |
addAssignment(Assignment stmt)
Adds assignment.
|
void |
addAssignments(java.util.List<Assignment> statements)
Appends assignments list to the last assignment of this object.
|
Action |
deepCopy()
Creates a completely independent copy of this object.
|
boolean |
equals(java.lang.Object obj) |
java.util.List<Assignment> |
getAssignments()
Returns all assignments.
|
java.util.Set<ru.ispras.fortress.expression.NodeVariable> |
getDefines()
Returns a set of defined variables.
|
java.lang.String |
getId()
Returns unique string identifier of this object.
|
java.util.Set<ru.ispras.fortress.expression.NodeVariable> |
getUses()
Returns a set of used variables.
|
int |
hashCode() |
boolean |
isConcurrent()
Checks rather this object includes concurrent or blocking assignments.
|
void |
removeAssignments()
Removes all assignments.
|
CfgBlockStatement |
toBlock()
Transforms to concurrent basic block node.
|
java.lang.String |
toString() |
public Action(Assignment assignment, boolean isConcurrent)
assignment
- Assignment to be kept in this object.java.lang.IllegalArgumentException
- when argument is null
.public Action(Assignment assignment)
assignment
- Assignment to be kept in this object.public Action(java.util.List<Assignment> list, boolean isConcurrent)
list
- Assignments to be kept in this object.isConcurrent
- Concurrent mode.java.lang.IllegalArgumentException
- when argument is null
.public Action(java.util.List<Assignment> list)
list
- Assignments to be kept in this object.public Action deepCopy()
public void addAssignment(Assignment stmt)
AssignmentContainer
addAssignment
in interface AssignmentContainer
stmt
- Assignment to be added.public void addAssignments(java.util.List<Assignment> statements)
AssignmentContainer
addAssignments
in interface AssignmentContainer
statements
- Assignments to be added.public java.util.List<Assignment> getAssignments()
AssignmentContainer
getAssignments
in interface AssignmentContainer
public void removeAssignments()
AssignmentContainer
removeAssignments
in interface AssignmentContainer
public boolean isConcurrent()
AssignmentContainer
isConcurrent
in interface AssignmentContainer
true
if this object contains concurrent assignments only,
false
if this object contains blocking assignments only.public CfgBlockStatement toBlock()
public java.lang.String getId()
public java.util.Set<ru.ispras.fortress.expression.NodeVariable> getUses()
UseDef
public java.util.Set<ru.ispras.fortress.expression.NodeVariable> getDefines()
UseDef
getDefines
in interface UseDef
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object