uk.ac.ucl.cs.uml.jmi.BehavioralElements.Actions.CompositeActions
Interface Clause
- All Superinterfaces:
- Element, ExtObject, javax.jmi.reflect.RefBaseObject, javax.jmi.reflect.RefFeatured, javax.jmi.reflect.RefObject
- All Known Implementing Classes:
- Clause_Impl
public interface Clause
- extends Element
A clause is a part of a conditional or loop action. A clause
contains a test action and a body action. Both are arbitrary
actions (usually group actions) subject to connectivity
constraints described under the various composite actions. The
execution of the body action is contingent on the corresponding
test action producing a "true" value. The clause specifies one
output pin of the test action, which must have type Boolean;
the body action is only executed if this output produces the
value "true" after execution of the test action. (Additionally,
for a conditional, only one clause body is executed even if more
than one of their tests is true.) The outputs of a clause are an
ordered subset of the outputs of the body action. No other
output of the body action may be connected outside the clause.
Clauses within a conditional action may be linked by a set of
(noncyclic) predecessor/successor relationships. The test action
of a clause may not execute unless all the predecessors of the
clause not only have completed execution, but have also
"failed." These relationships thus act, in effect, as
specialized kinds of control flows. Neither the test or body
actions of a clause can participate in any normal, explicit
control flows.
During execution of an enclosing loop action, a test action may
not execute for the first time unless all predecessors of the
loop action have executed. It may not execute for a subsequent
time unless the previous execution of the body action is
complete, that is, there is an implicit control flow between the
execution of a body action and the next iteration of the test
action.
In a conditional or a loop action, a body action may not execute
until its test action completes and yields "true."
Methods inherited from interface javax.jmi.reflect.RefObject |
refClass, refDelete, refImmediateComposite, refIsInstanceOf, refOutermostComposite |
Methods inherited from interface javax.jmi.reflect.RefFeatured |
refGetValue, refGetValue, refInvokeOperation, refInvokeOperation, refSetValue, refSetValue |
Methods inherited from interface javax.jmi.reflect.RefBaseObject |
equals, hashCode, refImmediatePackage, refMetaObject, refMofId, refOutermostPackage, refVerifyConstraints |
getTestOutput
OutputPin getTestOutput()
throws javax.jmi.reflect.JmiException
- Throws:
javax.jmi.reflect.JmiException
setTestOutput
void setTestOutput(OutputPin testOutput)
throws javax.jmi.reflect.JmiException
- Setter for atomic property testOutput)
- Throws:
javax.jmi.reflect.JmiException
getBodyOutput
Collection getBodyOutput()
throws javax.jmi.reflect.JmiException
- Throws:
javax.jmi.reflect.JmiException
getPredecessorClause
Collection getPredecessorClause()
throws javax.jmi.reflect.JmiException
- Throws:
javax.jmi.reflect.JmiException
getSuccessorClause
Collection getSuccessorClause()
throws javax.jmi.reflect.JmiException
- Throws:
javax.jmi.reflect.JmiException
getTest
Action getTest()
throws javax.jmi.reflect.JmiException
- Throws:
javax.jmi.reflect.JmiException
setTest
void setTest(Action test)
throws javax.jmi.reflect.JmiException
- Setter for atomic property test)
- Throws:
javax.jmi.reflect.JmiException
getBody
Action getBody()
throws javax.jmi.reflect.JmiException
- Throws:
javax.jmi.reflect.JmiException
setBody
void setBody(Action body)
throws javax.jmi.reflect.JmiException
- Setter for atomic property body)
- Throws:
javax.jmi.reflect.JmiException