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."


Method Summary
 Action getBody()
           
 Collection getBodyOutput()
           
 Collection getPredecessorClause()
           
 Collection getSuccessorClause()
           
 Action getTest()
           
 OutputPin getTestOutput()
           
 void setBody(Action body)
          Setter for atomic property body)
 void setTest(Action test)
          Setter for atomic property test)
 void setTestOutput(OutputPin testOutput)
          Setter for atomic property testOutput)
 
Methods inherited from interface uk.ac.ucl.cs.emofocl.jmi.reflect.extended.ExtObject
extAddObjectListener, extDeepCopy, extDeepCopy, extEquals, extRemoveObjectListener, extValueHash, extVisit
 
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
 

Method Detail

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