org.eclipse.uml2.uml
Interface ProtocolStateMachine

All Superinterfaces:
AttributeOwner, Behavior, BehavioredClassifier, Class, Classifier, Element, org.eclipse.emf.ecore.EModelElement, EncapsulatedClassifier, org.eclipse.emf.ecore.EObject, NamedElement, Namespace, org.eclipse.emf.common.notify.Notifier, OperationOwner, PackageableElement, ParameterableElement, RedefinableElement, StateMachine, StructuredClassifier, TemplateableElement, Type

public interface ProtocolStateMachine
extends StateMachine

A representation of the model object 'Protocol State Machine'. A ProtocolStateMachine is always defined in the context of a Classifier. It specifies which BehavioralFeatures of the Classifier can be called in which State and under which conditions, thus specifying the allowed invocation sequences on the Classifier's BehavioralFeatures. A ProtocolStateMachine specifies the possible and permitted Transitions on the instances of its context Classifier, together with the BehavioralFeatures that carry the Transitions. In this manner, an instance lifecycle can be specified for a Classifier, by defining the order in which the BehavioralFeatures can be activated and the States through which an instance progresses during its existence.

From package UML::StateMachines.

The following features are supported:

See Also:
UMLPackage.getProtocolStateMachine()

Field Summary
 
Fields inherited from interface org.eclipse.uml2.uml.NamedElement
SEPARATOR
 
Method Summary
 ProtocolConformance createConformance(ProtocolStateMachine generalMachine)
          Creates a new ProtocolConformance, with the specified 'General Machine', and appends it to the 'Conformance' containment reference list
 ProtocolConformance getConformance(ProtocolStateMachine generalMachine)
          Retrieves the first ProtocolConformance with the specified 'General Machine' from the 'Conformance' containment reference list
 ProtocolConformance getConformance(ProtocolStateMachine generalMachine, boolean createOnDemand)
          Retrieves the first ProtocolConformance with the specified 'General Machine' from the 'Conformance' containment reference list
 org.eclipse.emf.common.util.EList<ProtocolConformance> getConformances()
          Returns the value of the 'Conformance' containment reference list.
 boolean validateDeepOrShallowHistory(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          ProtocolStateMachines cannot have deep or shallow history Pseudostates.
 boolean validateEntryExitDo(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          The states of a ProtocolStateMachine cannot have entry, exit, or do activity Behaviors.
 boolean validateProtocolTransitions(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          All Transitions of a ProtocolStateMachine must be ProtocolTransitions.
 
Methods inherited from interface org.eclipse.uml2.uml.StateMachine
ancestor, createConnectionPoint, createRegion, getConnectionPoint, getConnectionPoint, getConnectionPoints, getExtendedStateMachine, getExtendedStateMachine, getExtendedStateMachines, getRegion, getRegion, getRegions, getSubmachineState, getSubmachineState, getSubmachineStates, LCA, LCAState, validateClassifierContext, validateConnectionPoints, validateContextClassifier, validateMethod
 
Methods inherited from interface org.eclipse.uml2.uml.Behavior
behavioredClassifier, createOwnedParameter, createOwnedParameterSet, createPostcondition, createPostcondition, createPrecondition, createPrecondition, getContext, getOwnedParameter, getOwnedParameter, getOwnedParameters, getOwnedParameterSet, getOwnedParameterSet, getOwnedParameterSets, getPostcondition, getPostcondition, getPostconditions, getPrecondition, getPrecondition, getPreconditions, getRedefinedBehavior, getRedefinedBehavior, getRedefinedBehaviors, getSpecification, inputParameters, isReentrant, isSetIsReentrant, outputParameters, setIsReentrant, setSpecification, unsetIsReentrant, validateFeatureOfContextClassifier, validateMostOneBehavior, validateParametersMatch
 
Methods inherited from interface org.eclipse.uml2.uml.Class
createNestedClassifier, createOwnedOperation, createOwnedOperation, createOwnedReception, getExtension, getExtension, getExtensions, getNestedClassifier, getNestedClassifier, getNestedClassifiers, getOwnedOperation, getOwnedOperation, getOwnedOperations, getOwnedReception, getOwnedReception, getOwnedReceptions, getSuperClass, getSuperClass, getSuperClasses, isActive, isMetaclass, setIsActive, validatePassiveClass
 
Methods inherited from interface org.eclipse.uml2.uml.EncapsulatedClassifier
createOwnedPort, getOwnedPort, getOwnedPort, getOwnedPort, getOwnedPorts
 
Methods inherited from interface org.eclipse.uml2.uml.StructuredClassifier
allRoles, createOwnedAttribute, createOwnedAttribute, createOwnedAttribute, createOwnedConnector, getOwnedAttribute, getOwnedAttribute, getOwnedAttributes, getOwnedConnector, getOwnedConnector, getOwnedConnectors, getPart, getPart, getParts, getRole, getRole, getRoles
 
Methods inherited from interface org.eclipse.uml2.uml.Classifier
allAttributes, allFeatures, allParents, allRealizedInterfaces, allSlottableFeatures, allUsedInterfaces, createCollaborationUse, createGeneralization, createOwnedUseCase, createRepresentation, createSubstitution, directlyRealizedInterfaces, directlyUsedInterfaces, getAllAttributes, getAllOperations, getAllUsedInterfaces, getAttribute, getAttribute, getAttributes, getCollaborationUse, getCollaborationUse, getCollaborationUses, getFeature, getFeature, getFeatures, getGeneral, getGeneral, getGeneralization, getGeneralization, getGeneralizations, getGenerals, getInheritedMember, getInheritedMember, getInheritedMembers, getOperation, getOperation, getOperations, getOwnedUseCase, getOwnedUseCase, getOwnedUseCases, getPowertypeExtent, getPowertypeExtent, getPowertypeExtents, getRedefinedClassifier, getRedefinedClassifier, getRedefinedClassifiers, getRepresentation, getSubstitution, getSubstitution, getSubstitutions, getUseCase, getUseCase, getUseCases, getUsedInterfaces, hasVisibilityOf, inherit, inheritableMembers, isAbstract, isFinalSpecialization, isSubstitutableFor, maySpecializeType, parents, setIsAbstract, setIsFinalSpecialization, setRepresentation, validateMapsToGeneralizationSet, validateNoCyclesInGeneralization, validateNonFinalParents, validateSpecializeType
 
Methods inherited from interface org.eclipse.uml2.uml.Namespace
createElementImport, createElementImport, createOwnedRule, createOwnedRule, createPackageImport, createPackageImport, excludeCollisions, getElementImport, getElementImport, getElementImports, getImportedElements, getImportedMember, getImportedMember, getImportedMembers, getImportedPackages, getMember, getMember, getMembers, getNamesOfMember, getOwnedMember, getOwnedMember, getOwnedMembers, getOwnedRule, getOwnedRule, getOwnedRules, getPackageImport, getPackageImport, getPackageImports, importMembers, membersAreDistinguishable, validateCannotImportOwnedMembers, validateCannotImportSelf, validateMembersDistinguishable
 
Methods inherited from interface org.eclipse.uml2.uml.RedefinableElement
getRedefinedElement, getRedefinedElement, getRedefinedElements, getRedefinitionContext, getRedefinitionContext, getRedefinitionContexts, isConsistentWith, isLeaf, isRedefinitionContextValid, setIsLeaf, validateNonLeafRedefinition, validateRedefinitionConsistent, validateRedefinitionContextValid
 
Methods inherited from interface org.eclipse.uml2.uml.Type
conformsTo, createAssociation, getAssociations, getPackage, setPackage
 
Methods inherited from interface org.eclipse.uml2.uml.PackageableElement
validateNamespaceNeedsVisibility
 
Methods inherited from interface org.eclipse.uml2.uml.NamedElement
allNamespaces, allOwningPackages, createDependency, createNameExpression, createUsage, getClientDependencies, getClientDependency, getClientDependency, getLabel, getLabel, getName, getNameExpression, getNamespace, getQualifiedName, getVisibility, isDistinguishableFrom, isSetName, isSetVisibility, separator, setName, setNameExpression, setVisibility, unsetName, unsetVisibility, validateHasNoQualifiedName, validateHasQualifiedName, validateVisibilityNeedsOwnership
 
Methods inherited from interface org.eclipse.uml2.uml.ParameterableElement
getOwningTemplateParameter, getTemplateParameter, isCompatibleWith, isTemplateParameter, setOwningTemplateParameter, setTemplateParameter
 
Methods inherited from interface org.eclipse.uml2.uml.Element
addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf
 
Methods inherited from interface org.eclipse.emf.ecore.EModelElement
getEAnnotation, getEAnnotations
 
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset
 
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
 
Methods inherited from interface org.eclipse.uml2.uml.TemplateableElement
createOwnedTemplateSignature, createOwnedTemplateSignature, createTemplateBinding, getOwnedTemplateSignature, getTemplateBinding, getTemplateBinding, getTemplateBindings, isTemplate, parameterableElements, setOwnedTemplateSignature
 
Methods inherited from interface org.eclipse.uml2.uml.BehavioredClassifier
createClassifierBehavior, createInterfaceRealization, createOwnedBehavior, getAllImplementedInterfaces, getClassifierBehavior, getImplementedInterfaces, getInterfaceRealization, getInterfaceRealization, getInterfaceRealizations, getOwnedBehavior, getOwnedBehavior, getOwnedBehaviors, setClassifierBehavior, validateClassBehavior
 

Method Detail

getConformances

org.eclipse.emf.common.util.EList<ProtocolConformance> getConformances()
Returns the value of the 'Conformance' containment reference list. The list contents are of type ProtocolConformance. It is bidirectional and its opposite is 'Specific Machine'.

This feature subsets the following features:

Conformance between ProtocolStateMachine

From package UML::StateMachines.

Returns:
the value of the 'Conformance' containment reference list.
See Also:
UMLPackage.getProtocolStateMachine_Conformance(), ProtocolConformance.getSpecificMachine()

createConformance

ProtocolConformance createConformance(ProtocolStateMachine generalMachine)
Creates a new ProtocolConformance, with the specified 'General Machine', and appends it to the 'Conformance' containment reference list.

Parameters:
generalMachine - The 'General Machine' for the new ProtocolConformance, or null.
Returns:
The new ProtocolConformance.
See Also:
getConformances()

getConformance

ProtocolConformance getConformance(ProtocolStateMachine generalMachine)
Retrieves the first ProtocolConformance with the specified 'General Machine' from the 'Conformance' containment reference list.

Parameters:
generalMachine - The 'General Machine' of the ProtocolConformance to retrieve, or null.
Returns:
The first ProtocolConformance with the specified 'General Machine', or null.
See Also:
getConformances()

getConformance

ProtocolConformance getConformance(ProtocolStateMachine generalMachine,
                                   boolean createOnDemand)
Retrieves the first ProtocolConformance with the specified 'General Machine' from the 'Conformance' containment reference list.

Parameters:
generalMachine - The 'General Machine' of the ProtocolConformance to retrieve, or null.
createOnDemand - Whether to create a ProtocolConformance on demand if not found.
Returns:
The first ProtocolConformance with the specified 'General Machine', or null.
See Also:
getConformances()

validateProtocolTransitions

boolean validateProtocolTransitions(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                    java.util.Map<java.lang.Object,java.lang.Object> context)
All Transitions of a ProtocolStateMachine must be ProtocolTransitions. region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition)))

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.

validateEntryExitDo

boolean validateEntryExitDo(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                            java.util.Map<java.lang.Object,java.lang.Object> context)
The states of a ProtocolStateMachine cannot have entry, exit, or do activity Behaviors. region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies (v.oclAsType(State).entry->isEmpty() and v.oclAsType(State).exit->isEmpty() and v.oclAsType(State).doActivity->isEmpty())))

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.

validateDeepOrShallowHistory

boolean validateDeepOrShallowHistory(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                     java.util.Map<java.lang.Object,java.lang.Object> context)
ProtocolStateMachines cannot have deep or shallow history Pseudostates. region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Pseudostate) implies ((v.oclAsType(Pseudostate).kind <> PseudostateKind::deepHistory) and (v.oclAsType(Pseudostate).kind <> PseudostateKind::shallowHistory))))

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.

Copyright 2003, 2014 IBM Corporation, CEA, and others.
All Rights Reserved.