uk.ac.ucl.cs.uml.jmi.Foundation.Core
Interface Operation

All Superinterfaces:
BehavioralFeature, Element, ExtObject, Feature, ModelElement, javax.jmi.reflect.RefBaseObject, javax.jmi.reflect.RefFeatured, javax.jmi.reflect.RefObject
All Known Implementing Classes:
Operation_Impl

public interface Operation
extends BehavioralFeature

An operation is a service that can be requested from an object to effect behavior. An operation has a signature, which describes the actual parameters that are possible (including possible return values). In the metamodel, an Operation is a BehavioralFeature that can be applied to the Instances of the Classifier that contains the Operation.


Method Summary
 CallConcurrencyKind getConcurrency()
          Specifies the semantics of concurrent calls to the same passive instance (i.e., an Instance originating from a Classifier with isActive=false).
 boolean getIsAbstract()
          If true, then the operation does not have an implementation, and one must ve supplied by a descendant.
 boolean getIsLeaf()
          If true, then the implementation of the operation may not be overriden by a descendant class.
 boolean getIsRoot()
          If true, then the class must not inherit a declaration of the same operation.
 Collection getMethod()
          Not documented in spec!
 Collection getOccurence()
          Not documented in spec! from ::"Behavioral Elements"::"State Machines"::CallEvent, pg.
 String getSpecification()
          Not documented in spec!
 void setConcurrency(CallConcurrencyKind concurrency)
          Setter for atomic property concurrency)
 void setIsAbstract(boolean isAbstract)
          Setter for atomic property isAbstract)
 void setIsLeaf(boolean isLeaf)
          Setter for atomic property isLeaf)
 void setIsRoot(boolean isRoot)
          Setter for atomic property isRoot)
 void setSpecification(String specification)
          Setter for atomic property specification)
 
Methods inherited from interface uk.ac.ucl.cs.uml.jmi.Foundation.Core.BehavioralFeature
getIsQuery, getParameter, getRaisedSignal, hasSameSignature, matchesSignature, setIsQuery
 
Methods inherited from interface uk.ac.ucl.cs.uml.jmi.Foundation.Core.Feature
getOwner, getOwnerScope, setOwner, setOwnerScope
 
Methods inherited from interface uk.ac.ucl.cs.uml.jmi.Foundation.Core.ModelElement
getAsArgument, getBehavior, getClientDependency, getComment, getConstraint, getContainer, getDefaultElement, getIsSpecification, getName, getNamespace, getPackage, getPresentation, getReferenceTag, getSourceFlow, getStereotype, getSupplierDependency, getTaggedValue, getTargetFlow, getTemplate, getTemplateArgument, getTemplateParameter, getVisibility, setDefaultElement, setIsSpecification, setName, setNamespace, setTemplate, setVisibility
 
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

getConcurrency

CallConcurrencyKind getConcurrency()
                                   throws javax.jmi.reflect.JmiException
Specifies the semantics of concurrent calls to the same passive instance (i.e., an Instance originating from a Classifier with isActive=false). Active instances control access to their own Operations so this property is usually (although not required in UML) set to sequential. Possibilities include: • sequential - Callers must coordinate so that only one call to an Instance (on any sequential Operation) may be outstanding at once. If simultaneous calls occur, then the semantics and integrity of the system cannot be guaranteed. • guarded - Multiple calls from concurrent threads may occur simultaneously to one Instance (on any guarded Operation), but only one is allowed to commence. The others are blocked until the performance of the first Operation is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks. Guarded Operations must perform correctly (or block themselves) in the case of a simultaneous sequential Operation or guarded semantics cannot be claimed. • concurrent - Multiple calls from concurrent threads may occur simultaneously to one Instance (on any concurrent Operation). All of them may proceed concurrently with correct semantics. Concurrent Operations must perform correctly in the case of a simultaneous sequential or guarded Operation or concurrent semantics cannot be claimed.

Throws:
javax.jmi.reflect.JmiException

setConcurrency

void setConcurrency(CallConcurrencyKind concurrency)
                    throws javax.jmi.reflect.JmiException
Setter for atomic property concurrency)

Throws:
javax.jmi.reflect.JmiException

getIsAbstract

boolean getIsAbstract()
                      throws javax.jmi.reflect.JmiException
If true, then the operation does not have an implementation, and one must ve supplied by a descendant. If false, the operation must have an implementation in the class or inherited from an ancestor.

Throws:
javax.jmi.reflect.JmiException

setIsAbstract

void setIsAbstract(boolean isAbstract)
                   throws javax.jmi.reflect.JmiException
Setter for atomic property isAbstract)

Throws:
javax.jmi.reflect.JmiException

getIsLeaf

boolean getIsLeaf()
                  throws javax.jmi.reflect.JmiException
If true, then the implementation of the operation may not be overriden by a descendant class. If false, then the implementation of the operation may be overridden by a descendant class (but it need not be overridden).

Throws:
javax.jmi.reflect.JmiException

setIsLeaf

void setIsLeaf(boolean isLeaf)
               throws javax.jmi.reflect.JmiException
Setter for atomic property isLeaf)

Throws:
javax.jmi.reflect.JmiException

getIsRoot

boolean getIsRoot()
                  throws javax.jmi.reflect.JmiException
If true, then the class must not inherit a declaration of the same operation. If false, then the class may (but need not) inherit a declaration of the same operation. (But the declaration must match in any case; a class may not modify an inherited operation declaration.)

Throws:
javax.jmi.reflect.JmiException

setIsRoot

void setIsRoot(boolean isRoot)
               throws javax.jmi.reflect.JmiException
Setter for atomic property isRoot)

Throws:
javax.jmi.reflect.JmiException

getSpecification

String getSpecification()
                        throws javax.jmi.reflect.JmiException
Not documented in spec!

Throws:
javax.jmi.reflect.JmiException

setSpecification

void setSpecification(String specification)
                      throws javax.jmi.reflect.JmiException
Setter for atomic property specification)

Throws:
javax.jmi.reflect.JmiException

getMethod

Collection getMethod()
                     throws javax.jmi.reflect.JmiException
Not documented in spec!

Throws:
javax.jmi.reflect.JmiException

getOccurence

Collection getOccurence()
                        throws javax.jmi.reflect.JmiException
Not documented in spec! from ::"Behavioral Elements"::"State Machines"::CallEvent, pg. 2-142

Throws:
javax.jmi.reflect.JmiException